python编码规范手册_编码人员手册:贸易工具

python编码规范手册

Git,调试,测试,终端,Linux,云,网络,模式/反模式-这到底是什么? 不用担心,我们会从头到尾进行处理(我保证,一路走来),您需要了解与他人合作精通的一切。

为什么有那么多工具?

我们到处都是对提高生产率至关重要的工具,但是...为什么要这么多呢? 为了回答这个问题,让我们从头开始,然后逐步完成编码过程!

我们都从一个小型的单独项目开始,致力于构建应用程序,创建简单模型或只是完成任务。 当我们开始编码时,我们注意到它只是……没有运行😢,所以我们叹口气,深吸一口气,开始寻找出了什么问题。

第一个错误只是一个小小的无辜的错字,但是随着时间的流逝,我们开始遇到越来越多的愚蠢的讨厌的错误🐞,每个错误都比最后一个更难处理! 阅读完我们的代码后,找到错误并进行修正(一点点黄金调试 ),我们的编码过程将继续,我们将努力创造出一些令人印象深刻的东西。

我们很快就走上了十字路口,完成了我们的小型小程序的工作,并想要进行一些更具野心的工作(是的)! 尽管我们雄心勃勃,但我们注意到一件事-我们犯了很多错误。

像任何优秀的学生一样,我们会读一些书,读一些文章,看一些视频,不久之后,我们就学到了几种设计模式 ,这些设计模式提供了一种不错的,流畅的编码体验和反模式 ... 。

现在考虑到一些复杂的模式/反模式,我们觉得我们已经准备好向世界展示我们的编码能力! 我们开始热情,紧张但充满激情,因此,通过召集一些朋友,我们开始了我们生活的新篇章。 这项工作很有趣,每个人都想发挥自己的作用,但是很快出现一个问题: 我们如何一起工作

最初,将代码从一个人发送到另一个人/向其他人发送邮件的效果很好...但是随后又有更多人加入其中,并且将每一行代码合并在一起变得难以管理! 在一时的混乱中,一个人做了不可能的事,莱纳斯·托瓦尔兹(Linus Torvalds)伸出橄榄枝,给了我们Git-与他人合作的完美系统。

最终,我们遇到了另一个挑战,尽管我们编写的代码还不错……我们感到对工作流程感到困惑。 令我们惊讶的是,有一个简单而优雅的解决方案-Linux和终端。 托伐莱纳斯提出Linux作为在一个方式,其完全的bash的Windows的替代到Windows(丑陋庞然大物),并用它的终端来编写代码。

现在,我们的工作流程变得更加顺畅,剩下的问题仍然很少-我们如何在任何地方运行此代码,如果需要,该怎么办...更多? 对我们来说幸运的是,.com热潮不断发展,互联网异常火爆! 我们曾经必须在计算机上运行的内容现在可以在云 (其他人/公司服务器)上运行。 现在,我们可以在舒适的房屋中运行并逐步分发更大(和更重量级)的代码!

时代

第1章-调试

我们的代码注定会有问题...即使我们是天才,它们仍然会出现! 我们无法*完全避免它们,但是我们可以以正确的方式解决每个问题,因此我们能够顺利地解决它。 有一个简单的技术可以帮助您:

  • 简单-保持简单愚蠢,越简单,发现问题就越容易!
  • 探索-当我们不知道出什么问题,放松并开始探索,使用一些打印语句,阅读一些错误并尝试
    弄清楚事情😌
  • 孤立 -尝试找到代码向南的位置(集中精力尽早发现错误)

现在,我知道起来容易做起来难 ,但是只要尝试一下 ...就可以了! 只要记住保持镇定,深呼吸🫁并继续,如果它是一个错误,您将不费吹灰之力就找到并销毁它😌!

第2章-测试

我们的代码有效...还是有效? 测试就是寻找似乎可以正常工作的东西是否正常 。 这是关于发现您的更改是否破坏了工作方式(可能以一种微妙的方式)。

测试可以是简单的,也可以是复杂的。 最简单的说,就是查看我们认为代码的作用,然后再仔细检查一遍,从更复杂的角度讲,这就是编写小段代码(单元测试或集成测试)来测试代码 (是的,用于测试代码的代码)。码)。

单元测试适用于小型隔离测试/场景,而集成测试则适用于较大/更现实的测试/场景。 尽管这听起来很简单(到目前为止),但是测试非常细微,因为我们编写代码的方式对我们测试代码的能力具有极大的影响(因此,了解模式/反模式可能很有用)!

测试还有很多,我不是专家,但是我希望这足以使您前进/给予您一定的指导感...

第3章-设计模式/反模式

模式和反模式只是好的和坏的编码实践,我们应该分别尝试使用它们。 尽管从本质上讲设计模式/反模式很简单,但它们往往过于复杂 ! 从本质上讲,我们总是看到好的和坏的代码,因此学习它们自然而然,但是许多书/文章都通过命名和羞辱来细化细节。

所有设计模式都具有三个基本目的,以帮助在类和对象之间创建 ,组织( 结构 )或进行通信( 行为 )。

一些例子:

  • 单例 -创建仅初始化(使用)一次的类
  • 策略 -当我们将多个算法(或模型)抽象(分组)为一类时,可以轻松地将它们替换掉
  • 观察者 -当多个对象需要知道事件何时触发时,我们可以区分观察者和调用者

由于反模式只是错误,因此存在的错误很少:

  • 分析瘫痪 -当我们被困在计划中而从不开始编码时
  • 货物崇拜编程 -当我们在不了解代码的情况下使用代码
  • 信誉规则 -我们工作的最后10%占用了我们90%的时间
  • 大泥球 -当我们所有的代码都在一个大块中时
  • 意大利面条代码 -我们的代码没有明确分开
  • Poltergeist-无缘无故创建多余的类/代码
  • 重复的逻辑/冗余代码 -在多个地方使用代码时,只能使用类/函数
  • 变量和函数的命名不明确 -名称应简短但仍要表达含义
  • 魔术弦 -用途未知的固定值

请注意,通过仔细检查代码(尤其是在Stack Overflow之外)将它们全部收集起来更为实用!

第4章-Git

Git是协作的一站式商店! 一旦我们学会使用它,它就会优雅而美丽……但似乎在此之前not。 不用担心,这很简单,Git通过跟踪所做的更改来工作(因此称为版本控制 ),并且通过将时间线分解为我们承诺使用 (提交)的块来实现

现在,我们可能会问-这对合并我们的更改有何帮助? 对我们来说幸运的是,解释起来并不难,Git将我们的工作存储在可以共享和分叉/克隆的 存储库中。 每当我们进行更改时,我们都可以提交这些更改,然后送到我们的在线存储库(技术上称为远程存储库)中。 然后,一旦我们准备分享出色的代码,我们就可以 其他人查看/确认我们所做的事情 (带有拉请求)! 尽管这一切听起来似乎很奇怪,但是当Git向我们提供有关更改的概述时,这很有用,因此我们可以确定我们团队的出色工作不会与我们的工作发生冲突/冲突。

现在,我们可以使用更多其他技术方法来使用Git,主要是通过将工作/进度划分为多个分支,并提供组合变更的特殊方法。 分支使我们能够突出显示我们希望共享的代码库的特定部分,同时还使我们能够隔离可能不稳定/尚未准备就绪的某些功能 ! 合并分支的第一种方法是通过将所做的更改添加到新提交中来合并 更改 。 第二个是在另一个分支上重放一个分支的更改 (我们称为rebase )。 我们使用哪种取决于我们的情况:

  • 当我们尝试使提交历史记录尽可能简单时,重新设置基准是一个了不起的灵活选择
  • 如果我们需要删除,修改,合并或更改提交顺序,以保持简单明了的历史记录,则仅需重新设置即可
  • 但是,就像时间旅行一样, 无论何时我们对其他人正在使用的任何东西进行重新设置都是很危险的
  • 在实践中, 仅对未发布/未使用的代码重新设置基础 (这通常被称为黄金法则
  • 现在我们已经讨论了困难的概念,让我们看一下
    在终端(下面进一步解释)中,我们可以使用以下命令:

克隆存储库

gitclone my_website_url

添加要在下一次提交中跟踪的文件/文件夹(在运行推荐时存储更改)

git commit -m"added amazing new features"

更改分支

git checkout my_branch

创建并切换到新分支

git checkout -b my_new_branch

git push

合并分支

git merge my_feature_branch

重新建立分支(n是要考虑的提交数)

git rebase -i HEAD~n

添加上游分支

git remote add upstream original_repo_url

同步本地存储库(到其远程)

git fetch upstream

要避免的一些错误:

  • Git存储库的URL不包含任何特定的文件/文件夹
  • 在准备好汇总我们的工作之前,我们会分叉存储库以保持隔离的版本与自己一起工作(因此,我们的更改不会在事情中间相互影响)
  • 因此, 克隆要使用的存储库时要输入的URL是您的分支版本 ,然后原始存储库主分支将成为分支存储库的上游分支 (因为它可能是较新的)
  • 复制粘贴其URL时请务必小心,因为它们很容易以错误的方式混合使用
  • 请注意, 上游分支只需设置一次
  • 拉取请求通过在线UI(即GitHub网站)而不是终端(通常)发生
  • 一旦开始进行交互式变基,请仔细阅读提供的选项

第5章-Linux和终端

如上所述,Linux是Windows的绝佳替代品(它是免费的),它更加灵活,轻巧! 内置的功能强大的终端(称为bash)是其独特之处,它使我们能够轻松执行复杂的任务。

以下是基本命令:

列出档案

ls
ls my_folder

更改目录(到另一个文件夹)

cd folder_path

移动文件/文件夹

mv old_location new_location

复制文件

cp file_location copy_location

复制文件夹

cp -r folder_location copy_location

运行另一个程序(例如文本编辑器,通常是vi,vim或nano)

program_location

尽管它们看起来并没有什么不同,但终端机提供了执行各种任务的可靠方法!

请注意,如果您输入了文本编辑器,则似乎无法关闭(可能是vi / vi的变体),然后按:q!

如果您喜欢这篇文章,请分享, 在Twitter上关注我, 查看我的博客 ,其中我解释了 其他复杂的主题,例如网络抓取

Kevin Ku在Unsplash上​​拍摄的 照片 Kevin Horvat在Unsplash上​​拍摄的照片 Yancy Min在Unsplash上​​拍摄的照片Michael Dziedzic在Unsplash上​​拍摄的照片

翻译自: https://hackernoon.com/the-coders-handbook-tools-of-the-trade-yn5330q1

python编码规范手册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值