[关闭]
@buoge 2017-08-17T11:03:22.000000Z 字数 5207 阅读 1211

web 开发那些事

Python 程序构建


一:python web整体知识路线

https://pic1.zhimg.com/v2-510cf15770d933cf6441166aab99d090_r.jpg
* 同类的知识点,先学其一就行,(vue/react) 学简单的,要一些挑战可以搞复杂的

二: 后端如何学习前段

前段工程师路线图

https://github.com/JacksonTian/fks

你能发展到嫌python慢的程度?
python 其实一直活跃,知识大家分享的少
前端的一些知识
前后端的协调

三:入门web 设计

Learn basics of web design in 4 minutes

https://github.com/jgthms/web-design-in-4-minutes

四: 后端开发和前端移动端协作

需求管理,尽力思考全面,不要让别人依赖自己,或尽可能少依赖,避免因为自己进程阻塞任务主进程
通过文档和其他技术手段积累一些规则性东西,共识,大家减少沟通成本,提高默契
需求确认很重要
mock 数据格式,并行任务开发

五:需求确定到最终交付的流程:

需求开始到落地

开发过程中的需求修改

技术选型制定技术方案:

选用技术成熟的库,使用业界主流框架
读库的源代码
根据业务和场景,分析使用
制定技术方案:构思调研,可复用方案
计划方案最后的3个问题
  1. 方案所需知识是否在自己能力范围内,是否hold住,技术的前提
  2. 项目的需求是否详尽明确的描述出来,只有能够拆分需求为一条条的描述才能对项目使用的技能点进行评估,对项目时间提出预估
  3. 项目值不值的做,个人项目有这问题,虎头蛇尾的个人项目

产品需求

架构评审

系统设计

取舍和权衡

各种系统设计主题的摘要,包括优点和缺点。每一个主题都面临着取舍和权衡

系统设计入门:system-design-primer

https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md

git 工作流程

GitHub Standard Fork & Pull Request Workflow https://gist.github.com/Chaser324/ce0505fbed06b947d962.

六:流如何把握项目进度

工程师角度

  1. 想清楚在动手
  2. 有事提前说
    • 有什么问题
    • 有哪些难点
    • 先做最难的点
  3. 不断和需求方,产品经理,项目经理反馈进度,不要爱面子不进行沟通,沟通可以让对方时时了解你的进度,帮助你协调资源
  4. 懂得取舍,
    • 先用平庸方案解决,保证开发点能赶上,别人不依赖等待自己,后续在解决
    • 保证团队整体利益,懂得取舍和妥协,大到工程项目,小到class,具体到项目要拿捏好取舍
  5. 不要多度设计
    • 过早已完成任务和完成时间线为主
    • 写可扩展的代码,而不是设计成复杂的项目
    • 有造轮子的能力和不造轮子的觉悟
    • 有版本迭代的概念,不然战线拉长影响工期
      • 如果所有的需求都重要,那么所有的需求就都不重要

TL角度

1. 了解每个开发者,对每个人有个清晰认识,技术能力,性格特点

* 如何分辨一个同学的技术实力,如何辨别一个程序员水平的高低?
* 后期可能变强
* 如何辨别一个程序员水平的高低? 
  https://www.zhihu.com/question/35194924/answer/62096697

2. 拆分任务

* 任务可以拆分不同子任务
* 尽可能一个人完成任务,高效
* 指派任务:基于对开发者的了解
    * 不要让一个人重复做类似的任务,得不到提升,本人厌烦
    * 兴趣意愿
    * 个人未完成工作情况

3. 最后任务的期限:

三时估计法
1、最乐观时间,也就是预估工作顺利情况下的时间为 a;
2、最可能的时间,就是最大可能时间 m;
3、最悲观的时间,就是工作进行不利的情况下所用的时间 b。

那么由此根据三时估计法的计算公式确定这项工作的持续时间,即持续时间=(a + 4×m + b)/6。

时间估计法
  1. 基于类似项目经验的结果有一个粗略的估算,讨论分工的时候听取大家的看法,最后约定好一个共识的期限,预留了讨价还价的期限

  2. 假如对开发者开发效率的权重,最优是1,效率低网上涨

如何了解把控进度
  1. 关注git提交,merge , git log
  2. 查看最新代码,对应分析是什么功能,然后对比todo list
  3. 里程碑,tag, 预先商量项目进度的里程碑和tag
  4. 结合上述几点,发现开发人员不能按进度完成时需要接入帮忙分但开发任务,保障项目顺利进行

七:前端工程化方案

前端定义

https://github.com/fouber/blog/issues/10

大公司的前端流程

https://github.com/fouber/blog/issues/6

前端工程化--美团

根据具体的业务特点,将前端的开发流程、技术、工具、经验等规范化、标准化就是前端工程化。它的目的是让前端开发能够“自成体系”,最大程度地提高前端工程师的开发效率,降低技术选型、前后端联调等带来的协调沟通成本。
http://tech.meituan.com/tech-salon-13-app-proto.html

网易爬虫的技术方案

react

image_1bhhrjiuq1km21tgqmslmtr19cc9.png-798.4kB

vue

image_1bhhrm718oi31s5g1r8l9dbclkm.png-556kB

八:web 辅助开发,调试优化工具方法

写码2小时,调试6小时

1. 给web应用添加werkzeug.debug.DebuggedApplication

image_1bhhrqknlflu101no319ai1ckl13.png-214.6kB

2. wdb 支持flask,tornado...,

websockt 调试,远程调试,豆瓣已集成
* https://github.com/Kozea/wdb

3. 分布式监控监测

4. 通过日志监控慢查询

QA

小明明有哪些订阅列表

https://zhuanlan.zhihu.com/p/22481120

github上用sanic,你觉得这框架成熟吗?可以用于生产吗?生态怎么样?

sanic Async Python 3.5+ web server that's written to go fast
https://github.com/channelcat/sanic
强烈建议学习,将来是 Python3和AsyncIO的天下

董老师 请问开发时纯用sql的场景多还是用sqlalchemy的场景多呢?orm对于复杂的查询好像不太好控制 能分享下你平时关于这点的选择吗

推荐使用orm,看复杂查询使用sql语句

技术经理提需求,说的很简略甚至模糊(他感觉没难度),初级工程师经验有限觉得有难度,多次确认需求后被说:还要我一步一步都都说清楚吗?怎么办

Python高级特性

高级特性可以看看我这个,长期不断积累的过程 http://dongweiming.github.io/Expert-Python/

如何快速掌握一个模块

  1. 看官方文档
  2. 看源代码,往复2-3次可能就会越来越清楚,
  3. 看官方demo,测试代码
  4. 看注释

小明明的学习计划

1.Python 继续深入

2.系统架构方面,实现和演变

3.Rust:

4.Vue

我朋友遇到问题能够很快抓住重点,如同建筑工人搭脚手架,搭好大致框架再补充,而我好似从左下角到右上角一点一点搭建。做事总抓不住重点?怎么办?

董老师能不能推荐个python比较简单的服务化框架,thrift感觉不好学

thriftpy (eleme)

nameko

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注