切身体会:开发,拉取请求,提交,软件技能


嗨,哈布拉哈伯! 在本文中,我将分享我对软件开发的看法。 不久以前我就从事信息技术工作,但是从承诺的名称到澄清任务的要求,我对发展持坚定的态度。

发展历程


同类变化


想象一下,您有一项任务,首先需要开发优化的解决方案,然后使用它代替项目中十几个文件中的旧解决方案。 首先,评估您解决问题的方法是否正确,然后进行重构。 决定一次做所有事情-您可以在代码审查中获得对解决方案的重要评论和更正。 然后,您将必须重写应用新代码的所有文件。

任务执行


不要用军刀解决问题,不要急着做出重要的决定,即使您的做法似乎是正确的。 请遵循以下准则:

  • 对项目或网络中的现有实现进行分析,刷新内存中的原理和设计模式。
  • 解决典型或过于复杂的问题的时间不要超过20分钟;这是无效的。 最有可能的是,如果您没有迅速找到正确的方法,那么解决方案就不那么明显了。
  • 向同事(包括主要开发人员)寻求帮助。
  • 作为子任务的一部分,逐步解决问题,不要跳过-“以后我会做困难的事情。” 事实证明,没有正确的解决方案,现有的解决方案不适合,因此需要对任务进行审查。
  • 从基本问题开始解决问题,确保概念领域起作用。 事实证明,单独使用您的功能是可行的,将其连接在一起将需要“拐杖”或另一种集成方法,这将花费额外的时间。

拉取请求


职称


标题应描述变更主题-简洁明了。 遵循标题设计规则:

  • 以大写字母开头
  • 最后一点都没有
  • 有命令式的心情

Ticket-295: Add base cat interface and British cat realization 

内容描述


拉取请求的这一部分应以非技术专家可以理解的语言正确书写,再除以语义负载,并按以下方式披露更改:

  • 结果用几句话,
  • 变化之前
  • 为什么以及为什么必须这样做,
  • 你到底做了什么
  • 您是如何实现的。

 The base cats interface was created to provide the common cats functionality and attributes. Also the realization of the British cats was created as the individual one. Our business-analytics have provided for product owner that they want to interact with cats on out platform too, not only with docs. So developers got the tasks to design and implement basic implementation of the cats interface to describe the common patterns of the interaction with it by user. Also the goal was to create one demo cat called British cats (British Shorthair) with its great noses. 

帮忙


最后,保留指向拉取请求中涵盖的主题的链接。 如果另一个开发人员需要更好地了解所做的更改,他将能够在那里查看。 还有一些规则:

  • 简要描述帮助的方向
  • 如果可能的话-抛出完整链接,
  • 如果不是,请使用git.iobit.ly进行缩短,
  • 列出清单。

 References: • British cats — https://en.wikipedia.org/wiki/British_Shorthair • Cats anatomy — https://en.wikipedia.org/wiki/Cat_anatomy 

提交


合并提交


当您处理新更改时,可以在单独的工作分支中进行。 工作分支中的提交是自我记录的一行更改。

 $ git log --oneline 4336d35 Create cats interface 7bc2ba9 Implement Persian cat realization 5f330fd Add Persian cat documentation ... 

当需要对默认分支进行这些更改时,将在一个大的提交中完成,并带有标题以及对执行的操作及其原因的全面描述。 合并更改的良好做法是使用源代码存储系统(如GithubGitlab)的Web界面。

 $ git log --oneline d2ccf1a Ticket-299: Prevent cats graph be stopped unexpectedly (#301) 82a921a Ticket-295: Add base cat interface and british cat realization (#293) ... 

结果,默认分支充满了带有更改详细描述的提交。

 Ticket-299: Prevent cats graph be stopped unexpectedly There was a situation when cats graph is stopped unexpectedly without any verbose information and traceback. The socket connection between two web-servers (back-end and front-end) was successfully debugged and founded the socket library async latent behavior. Implemented: — Create handler for async socket connection as sync. The consumer doesnt specify a condition for ending the while loop and stream, so the application checker in Daphne cleans up the task if the protocol disconnects and the app doesnt handle it. So `channel_layer` is wrapped to `async_to_sync`. — Fix low latency between pushing the cats graph data and its output on the user interface. There was a high coupling between interface class that proxy via a few client to the realization. The separated cats graph message class was created. References: • Socket channel layers — https://channels.docs.io/channel_layers.html • Daphne handle_reply() — https://git.io/fgVzK Issue: #56 

进行合并提交时,请遵循以下准则:

  • 一次提交中的所有更改;
  • 带有不同语义负载的文本的标题和文本块用空行分隔;
  • 描述更改:为什么需要它们,解决了什么问题;
  • 以列表的形式详细描述每个更改:进入细节和后果,
  • 使您的决定显而易见;
  • 留下帮助,文档,论坛,问题讨论的链接;
  • 如果您的更改与主题相关,请参考主题或请求请求;
  • 将邮件中的行数限制为72个字符。

软技能


书面交流


每天,开发人员都会就技术主题,项目,解决问题的方法进行书面交流,但并非总是做得很好。 与您交流的人不会阅读您的想法,不会以相同的方式思考,并且不会记住您正在执行的提案主题的详细信息。 如何改进此过程:

  • 遵循拼写和标点规则,以界定文本的含义。
  • 使用换行符,并在不相关的文本块之间留空行。
  • 使用列表突出显示序列或标记句子。
  • 使用服务共享部分代码或使用公司工具: PastebinGithub GistCodeshare或(例如) Slack Messenger在代码或文本片段聊天中具有功能。
  • 借助Messenger中的内置标记突出显示您自己的姓名,重要单词和详细信息。 现在,任何现代Messenger都支持通过这种类型的文本选择。
  • 通过指向文档,文章或论坛帖子的链接来支持您的讨论。
  • 不要向对话者写信或显示不必要的信息。 例如,如果其他人看到此题词,请不要使用日期格式为Screen Shot 2018-06-23 at 12.17.31 AM的姓名填写刚刚截取的屏幕截图。 在用户的注册过程中仔细查看Traceback.jpg讨论主题。

责任感


您不仅会获得新的经验和知识,而且在以下情况下会成长为专业人士:

  • 解决问题时,请咨询专家;
  • 您的工作可以做得更好-改进;
  • 作为同事,您可以做得更好-告诉他;
  • 您一无所知-确认并寻求帮助;
  • 改进流程,带来新事物,不要忽视问题。

感谢您抽出宝贵的时间来发布。 在私人消息或评论中留下反馈,我将很高兴进行讨论。

Source: https://habr.com/ru/post/zh-CN416545/


All Articles