Skip to content

Commit

Permalink
删除了不必要的资源文件更新了README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jackfrued committed May 25, 2019
1 parent d8e1165 commit a064190
Show file tree
Hide file tree
Showing 63 changed files with 9 additions and 17 deletions.
Binary file modified .DS_Store
Binary file not shown.
File renamed without changes.
20 changes: 9 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

![](./res/python-bj-salary.png)

![](./res/python-cd-salary.png)
![](./res/python-salary-chengdu.png)

给初学者的几个建议:

Expand Down Expand Up @@ -444,15 +444,15 @@
> - **客户合作** 高于 合同谈判
> - **响应变化** 高于 遵循计划
![](./res/the-daily-scrum-in-the-sprint-cycle.png)
![](./res/agile-scrum-sprint-cycle.png)

> 角色:产品所有者(决定做什么,能对需求拍板的人)、团队负责人(解决各种问题,专注如何更好的工作,屏蔽外部对开发团队的影响)、开发团队(项目执行人员,具体指开发人员和测试人员)。
>
> 准备工作:商业案例和资金、合同、憧憬、初始产品需求、初始发布计划、入股、组建团队。
>
> 敏捷团队通常人数为8-10人。
>
> 工作量估算:将开发任务量化,包括原型、Logo设计、UI设计、前端开发等,尽量把每个工作分解到最小任务量,最小任务量标准为工作时间不能超过两天,然后估算总体项目时间。把每个任务都贴在白板上面,白板上分三部分:to do(待完成)、in progress(进行中)和done(已完成)。
> 角色:产品所有者(决定做什么,能对需求拍板的人)、团队负责人(解决各种问题,专注如何更好的工作,屏蔽外部对开发团队的影响)、开发团队(项目执行人员,具体指开发人员和测试人员)。
> 准备工作:商业案例和资金、合同、憧憬、初始产品需求、初始发布计划、入股、组建团队。
> 敏捷团队通常人数为8-10人。
> 工作量估算:将开发任务量化,包括原型、Logo设计、UI设计、前端开发等,尽量把每个工作分解到最小任务量,最小任务量标准为工作时间不能超过两天,然后估算总体项目时间。把每个任务都贴在白板上面,白板上分三部分:to do(待完成)、in progress(进行中)和done(已完成)。
2. 项目团队组建

Expand Down Expand Up @@ -636,6 +636,4 @@
- 云存储
- CDN



> 致谢:感谢的我的同事古晔、张旭、肖世荣、王海飞、荣佳伟、路丰坤等在技术上给予的指导和帮助。
Binary file removed res/01.django_single_server.png
Binary file not shown.
Binary file removed res/02.django_dedicated_db_server.png
Binary file not shown.
Binary file removed res/03.django_dedicated_static_server.png
Binary file not shown.
Binary file removed res/04.django_load_balance.png
Binary file not shown.
Binary file removed res/05.django_massive_cluster.png
Binary file not shown.
Binary file removed res/Celery_RabitMQ.png
Binary file not shown.
Binary file removed res/Producer-Broker-Consumer-Arrangement.png
Binary file not shown.
Binary file removed res/abstraction-view.png
Binary file not shown.
File renamed without changes
Binary file removed res/algorithm_complexity_1.png
Binary file not shown.
Binary file removed res/algorithm_complexity_2.png
Binary file not shown.
Binary file removed res/alipay_web_developer.png
Binary file not shown.
Binary file removed res/aliyun-certificate.png
Binary file not shown.
Binary file removed res/aliyun-dnslist.png
Binary file not shown.
Binary file removed res/aliyun-domain.png
Binary file not shown.
Binary file removed res/aliyun-keeprecord.png
Binary file not shown.
Binary file removed res/aliyun-resolve-settings.png
Binary file not shown.
Binary file removed res/app_folder_arch.png
Binary file not shown.
Binary file removed res/builtin-middlewares.png
Binary file not shown.
Binary file removed res/celery.png
Binary file not shown.
Binary file removed res/celery_architecture.png
Binary file not shown.
Binary file removed res/class-and-object.png
Binary file not shown.
Binary file removed res/click-jacking.png
Binary file not shown.
Binary file removed res/concurrency.png
Binary file not shown.
Binary file removed res/deployment_pipelines.png
Binary file not shown.
Binary file removed res/django-middleware.png
Diff not rendered.
Binary file removed res/django-mtv.png
Diff not rendered.
Binary file removed res/django_request_response_cycle.png
Diff not rendered.
Binary file removed res/docker_logo.png
Diff not rendered.
Binary file removed res/docker_vs_vm.png
Diff not rendered.
Binary file removed res/encapsulation.png
Diff not rendered.
Binary file removed res/er-graph.png
Diff not rendered.
Binary file removed res/git_logo.png
Diff not rendered.
Binary file removed res/git_repository.png
Diff not rendered.
Binary file removed res/gitignore_io.png
Diff not rendered.
Binary file removed res/greedy.png
Diff not rendered.
Binary file removed res/http-request.png
Diff not rendered.
Binary file removed res/http-response.png
Diff not rendered.
Binary file removed res/jenkins_new_project.png
Diff not rendered.
Binary file removed res/modularity.png
Diff not rendered.
Binary file removed res/multi-inheritance.png
Diff not rendered.
Binary file removed res/mvc.png
Diff not rendered.
Binary file removed res/oauth2.png
Diff not rendered.
Binary file removed res/object-roles.png
Diff not rendered.
Binary file removed res/objects-collaborate.png
Diff not rendered.
Binary file removed res/objects-lifetime.png
Diff not rendered.
Binary file removed res/python-cd-salary.png
Diff not rendered.
Binary file removed res/python-salary-hangzhou.png
Diff not rendered.
Binary file removed res/python-salary-shanghai.png
Diff not rendered.
Binary file removed res/python-salary-shenzhen.png
Diff not rendered.
Binary file removed res/python-str-join.png
Diff not rendered.
Binary file removed res/python_salary_guangzhou.png
Diff not rendered.
Binary file removed res/redmine_new_issue.png
Diff not rendered.
Binary file removed res/selenium-ide.png
Diff not rendered.
Binary file removed res/selenium_ide.png
Diff not rendered.
Binary file removed res/shopping-pdm.png
Diff not rendered.
Binary file removed res/uml-graph.png
Diff not rendered.
Binary file removed res/uml.png
Diff not rendered.
Binary file removed res/web-application.png
Diff not rendered.
6 changes: 0 additions & 6 deletions 用函数还是用复杂的表达式.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ else:
if c > the_max:
the_max = c
print('The max is:', the_max)

```

但是我们刚才说了,程序员都是懒惰的,很多程序员都会使用三元条件运算符来改写上面的代码。
Expand All @@ -27,7 +26,6 @@ c = int(input('c = '))
the_max = a if a > b else b
the_max = c if c > the_max else the_max
print('The max is:', the_max)

```

需要说明的是,Python在2.5版本以前是没有上面代码第4行和第5行中使用的三元条件运算符的,究其原因是Guido van Rossum(Python之父)认为三元条件运算符并不能帮助 Python变得更加简洁,于是那些习惯了在C/C++或Java中使用三元条件运算符(在这些语言中,三元条件运算符也称为“Elvis运算符”,因为`?:`放在一起很像著名摇滚歌手猫王Elvis的大背头)的程序员试着用`and``or`运算符的短路特性来模拟出三元操作符,于是在那个年代,上面的代码是这样写的。
Expand All @@ -39,7 +37,6 @@ c = int(input('c = '))
the_max = a > b and a or b
the_max = c > the_max and c or the_max
print('The max is:', the_max)

```

但是这种做法在某些场景下是不能成立的,且看下面的代码。
Expand All @@ -60,7 +57,6 @@ a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
print('The max is:', (a if a > b else b) if (a if a > b else b) > c else c)

```

但是,这样做真的好吗?如此复杂的表达式是不是让代码变得晦涩了很多呢?我们发现,在实际开发中很多开发者都喜欢过度的使用某种语言的特性或语法糖,于是简单的多行代码变成了复杂的单行表达式,这样做真的好吗?这个问题我也不止一次的问过自己,现在我能给出的答案是下面的代码,使用辅助函数。
Expand All @@ -74,7 +70,6 @@ a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
print('The max is:', the_max(the_max(a, b), c))

```

上面的代码中,我定义了一个辅助函数`the_max`用来找出参数传入的两个值中较大的那一个,于是下面的输出语句可以通过两次调用`the_max`函数来找出三个数中的最大值,现在代码的可读性是不是好了很多。用辅助函数来替代复杂的表达式真的是一个不错的选择,关键是比较大小的逻辑转移到这个辅助函数后不仅可以反复调用它,而且还可以进行级联操作。
Expand All @@ -86,6 +81,5 @@ a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
print('The max is:', max(a, b, c))

```

0 comments on commit a064190

Please sign in to comment.