作者:骆昊
说明:如果访问 GitHub 比较慢的话,可以关注我的知乎号(Python-Jack),上面的“从零开始学Python”专栏(对应本项目前 20 天的内容)比较适合初学者,其他的专栏如“数据思维和统计思维”、“基于Python的数据分析”、“说走就走的AI之旅”等也在持续创作和更新中,欢迎大家关注、点赞和评论。如果希望免费学习打卡或者参与问题讨论,可以加入下面的 QQ 交流群(三个群加一个即可),请不要重复加群,也不要在群里发布广告和其他色情、低俗或敏感内容。如果有付费学习或付费咨询的需求,可以添加我的私人微信(微信号:jackfrued),备注好自己的称呼和需求,我会为大家提供力所能及的帮助。
本项目对应的部分视频已经同步到 Bilibili,有兴趣的小伙伴可以点赞、投币、关注,一键三连支持一下!
简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。
Python在以下领域都有用武之地。
作为一名Python开发者,根据个人的喜好和职业规划,可以选择的就业领域也非常多。
说明:目前,数据科学赛道是非常热门的方向,因为不管是互联网行业还是传统行业都已经积累了大量的数据,各行各业都需要数据科学家从已有的数据中发现更多的商业价值,从而为企业的决策提供数据的支撑,这就是所谓的数据驱动决策。
给初学者的几个建议:
HttpResponse
修改响应头StreamingHttpResponse
处理大文件xlwt
生成Excel报表reportlab
生成PDF报表requests
三方库实现数据抓取经典过程模型(瀑布模型)
瀑布模型最大的缺点是无法拥抱需求变化,整套流程结束后才能看到产品,团队士气低落。 - 敏捷开发(Scrum)- 产品所有者、Scrum Master、研发人员 - Sprint - 产品的Backlog(用户故事、产品原型)。 - 计划会议(评估和预算)。 - 日常开发(站立会议、番茄工作法、结对编程、测试先行、代码重构……)。 - 修复bug(问题描述、重现步骤、测试人员、被指派人)。 - 发布版本。 - 评审会议(Showcase,用户需要参与)。 - 回顾会议(对当前迭代周期做一个总结)。
补充:敏捷软件开发宣言
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
角色:产品所有者(决定做什么,能对需求拍板的人)、团队负责人(解决各种问题,专注如何更好的工作,屏蔽外部对开发团队的影响)、开发团队(项目执行人员,具体指开发人员和测试人员)。
准备工作:商业案例和资金、合同、憧憬、初始产品需求、初始发布计划、入股、组建团队。
敏捷团队通常人数为8-10人。
工作量估算:将开发任务量化,包括原型、Logo设计、UI设计、前端开发等,尽量把每个工作分解到最小任务量,最小任务量标准为工作时间不能超过两天,然后估算总体项目时间。把每个任务都贴在看板上面,看板上分三部分:to do(待完成)、in progress(进行中)和done(已完成)。
项目团队组建
团队的构成和角色
编程规范和代码审查(flake8
、pylint
)
Python中的一些“惯例”(请参考《Python惯例-如何编写Pythonic的代码》)
影响代码可读性的原因:
团队开发工具介绍
请参考《团队项目开发的问题和解决方案》。
选题范围设定
CMS(用户端):新闻聚合网站、问答/分享社区、影评/书评网站等。
MIS(用户端+管理端):KMS、KPI考核系统、HRS、CRM系统、供应链系统、仓储管理系统等。
App后台(管理端+数据接口):二手交易类、报刊杂志类、小众电商类、新闻资讯类、旅游类、社交类、阅读类等。
其他类型:自身行业背景和工作经验、业务容易理解和把控。
需求理解、模块划分和任务分配
需求理解:头脑风暴和竞品分析。
| 模块 | 功能 | 人员 | 状态 | 完成 | 工时 | 计划开始 | 实际开始 | 计划结束 | 实际结束 | 备注 | | ---- | -------- | ------ | -------- | ---- | ---- | -------- | -------- | -------- | -------- | ---------------- | | 评论 | 添加评论 | 王大锤 | 正在进行 | 50% | 4 | 2018/8/7 | | 2018/8/7 | | | | | 删除评论 | 王大锤 | 等待 | 0% | 2 | 2018/8/7 | | 2018/8/7 | | | | | 查看评论 | 白元芳 | 正在进行 | 20% | 4 | 2018/8/7 | | 2018/8/7 | | 需要进行代码审查 | | | 评论投票 | 白元芳 | 等待 | 0% | 4 | 2018/8/8 | | 2018/8/8 | | |
OOAD和数据库设计
UML(统一建模语言)的类图
通过模型创建表(正向工程),例如在Django项目中可以通过下面的命令创建二维表。
Shell
python manage.py makemigrations app
python manage.py migrate
使用PowerDesigner绘制物理模型图。
通过数据表创建模型(反向工程),例如在Django项目中可以通过下面的命令生成模型。
Shell
python manage.py inspectdb > app/models.py
unittest
、pytest
、nose2
、tox
、ddt
、……)coverage
)面试宝典
机器学习数学基础