git

Git开发记录-合并多条commit最佳实践

问题

常规的多人基于GIT协作开发的时候,都是遵循先fork一份主版本代码到自己的账号下面,然后基于本账户的版本,开分支来开发功能或修Bug,完成以后再讲修改的内容,提交一个完整的PR贡献回主版本。

在本分支上开发的过程中,有时候不得不先提交到自己账号下面的克隆版本中来测试(比如豆瓣的dae pre,无法在本地生成预览,需要提交到远端),我们不能保证一次性提交就做到完美,避免不了会往复的修改后提交,这样的一次次测试用的commit属于是冗余的琐碎信息,对于主版本迭代是没有价值的。如果直接在基于该分支提交PR,甚至被mergeupstream/master主版本中,这些不必要的 commit 信息也会包含进主版本中。这当然不是一个理想的迭代方式。

现在问题明确以后,就是一个目标:将这些开发中的所有commit都合并为一条有意义的commit信息提交给主版本

……

READ MORE

Django Channels2.0 websocket最佳实践

做web后端开发,少不了要和 websocket 打交道。之前写过一篇关于 websocket 的实践文章 --- 《[python]记录关于websocket的原理和使用》 ,不过,从GITHUB上可以看到,django-websocket 这个开源项目俨然已经是一个被放弃了的坑,并且在使用的过程中确实也有很多坑,果断弃之。

今天想聊的就是目前业界大牛都在推荐的一个框架--Channels, Channels是针对 Django 项目的一个增强框架,它可以是的同步的 Django 项目转变为异步的项目。它可以使得 Django 项目不仅支持 HTTP 请求,还可以支持 Websocket, chat协议,IOT协议 ,甚至是你自定义的协议,同时也整合了 Django 的 auth 以及 session 系統等等。

……

READ MORE

浅谈 python 中的上下文管理

with 语法

平常在写Python代码的时候,经常会用到with 来处理一个上下文环境,比如文件的打开关闭,数据库的连接关闭等等。

with语法的使用,需要我们处理的对象实现__enter____exit__两个魔术方法来支持。__enter__函数处理逻辑函数之前需要做的事情,并返回操作对象作为as后面的变量,__exit__函数处理当代码离开with代码块以后的事情。

with语法非常方便的让我使用资源并且不用操心忘记后续操作所带来的隐患。

……

READ MORE

《算法图解》读书笔记7-狄克斯特拉算法

概念

狄克斯特拉算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题 (该算法不能处理包含负边的图)。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

……

READ MORE

沉寂一个月后的复苏

不知不觉,一个月没有写东西。感觉很快,因为没有感觉;但有感觉很慢,因为心理一直在作斗争。

这将近一个月的时间里,我基本没有和业界的朋友交流,自己都感觉自己像蒸发了一样。这一个月的经过,给我积累了人生的一次重要经验——项目一定要选对人。剩下的就留给时间去消化吧。

今天以后,我将继续恢复日常的上班,学习,记录生活。

今天,北京天气很好。趁着阳光正好,我正式入职豆瓣了。

……

READ MORE

Scroll to top