代码评审

Python-05-编码规范 PEP8

巧了我就是萌 提交于 2020-01-31 21:07:27
  这篇文档说明了Python主要发行版中标准库代码所遵守的规范。很多项目都有自己的一套风格指南。若和本指南有任何冲突,应该优先考虑其项目相关的那套指南。 文章目录 代码布局(Code Lay-Out) 缩进(Indentation) 每行最大长度(Maximum Line Length) 二元运算符之前还是之后换行?(Should a line break before or after a binary operator?) 空行(Blank Line) 源文件编码(Source File Encoding) 模块引用(Imports) 模块级的双下划线命名(Module level dunder names) 字符串引用(String Quotes) 表达式和语句中的空格(Whitespace In Expressions And Statements) 一些痛点(Pet Peeves) 其他建议(Other Recommendations) 何时在末尾加逗号(When to use trailing commas) 注释(Comments) 块注释(Block Comments) 行内注释(Inline Comments) 文档字符串(Documentation Strings) 命名约定(Naming Conventions) 首要原则(Overriding

值得学习的C语言开源项目

纵饮孤独 提交于 2020-01-29 12:26:18
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接: http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。 下载链接: http://sourceforge.net/projects/tinyhttpd/ - 3. cJSON cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。 cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 项目主页: http://sourceforge.net/projects/cjson/ - 4. CMockery

推荐 C/C++ 人工智能 框架和库

自作多情 提交于 2020-01-28 23:49:54
2018年10月22日 22:59:58 yangminggg 阅读数:2217 值得推荐的C/C++框架和库 C++资源大全 关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库 C++标准库 ,包括了STL容器,算法和函数等。 C++ Standard Library :是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library :标准模板库 C POSIX library : POSIX系统的C标准库规范 ISO C++ Standards Committe e :C++标准委员会 C++通用框架和库 Apache C++ Standard Library :是一系列算法,容器,迭代器和其他基本组件的集合 ASL :Adobe源代码库提供了同行的评审和可移植的C++源代码库。 Boost :大量通用C++库的集合。 BDE :来自于彭博资讯实验室的开发环境。 Cinder :提供专业品质创造性编码的开源开发社区。 Cxxomfort :轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。 Dlib :使用契约式编程和现代C++科技设计的通用的跨平台的C++库。 EASTL :EA-STL公共部分

【译】软件架构师之路

谁说我不能喝 提交于 2020-01-28 05:22:42
今天给大家带来一篇自己翻译的干货《软件架构师之路》。本周Github上升很快的项目。其内容对致力于成为软件架构师(不论前后端)的同学应该都会有极大的帮助。 项目地址: 中文地址 https://github.com/gamedilong/SoftwareArchitect-CN 原文地址 https://github.com/justinamiller/SoftwareArchitect 如果有看完英文原文,发现本文翻译内容中存在问题或者错误的欢迎到中文Git地址PR,如能够对大家起到一定的帮助也欢迎star 内容 什么是软件架构 软件架构的层次 软件架构师的典型工作内容 软件架构师的重要技能 架构师的技术路线图 相关书籍 什么是软件架构? 软件架构师是一名软件开发专家,他可以进行高层设计选择并决定技术标准,包括软件编码标准,工具和平台。 (出处: 维基百科:软件架构师) 软件架构(architecture)是一个系统的基本组织,由其组件、它们之间的相互关系和环境以及决定系统设计和演化的原则来表示。 (出处: 软件架构手册) 软件架构的层次 软件架构可以被抽象的分为几个层次,不同的层次对技能的要求不同。对层次有很多不同的划分,我最喜欢如下这三种划分: 应用级 : 最低层次的架构。聚焦单个具体的应用。 非常注重细节, 底层设计。 沟通仅限入单个开发团队。 解决方案级 : 中级别的架构

极限编程

不打扰是莪最后的温柔 提交于 2020-01-26 02:51:53
概述 敏捷方法论有一个共同的特点,那就是都将矛头指向了“文档”,它们认为传统的软件工程方法文档量太“重”了,称为“重量级”方法,而相应的敏捷方法则是“轻量级”方法。正是因为“轻量级”感觉没有什么力量,不但不能够有效体现灵活性,反而显得是不解决问题的方法论似的。因此,就有了一次划时代的会议,创建了敏捷联盟。 在敏捷方法论领域中,比较知名的、有影响力的,是拥有与 Microsoft 的操作系统相同缩写语——XP的极限编程(eXtreme Programming)。极限编程方法论可以说是敏捷联盟中最鲜艳的一面旗帜,也是被研究、尝试、应用、赞扬、批判最多的一种方法论,也是相对来说最成熟的一种。 这一被誉为“黑客文化”的方法论的雏形最初形成于1996—1999年间,Kent Beck、Ward Cunninggham、Ron Jeffrey 在开发 C3 项目(Chrysler Comprehensive Compensation)的实践中总结出了 XP 的基本元素。在此之后,Kent Beck 和他的一些好朋友们一起在实践中完善提高,终于形成了极限编程方法论。 解析极限编程 那么什么是 XP 呢?XP 是一种轻量(敏捷)、高效、低风险、柔性、可预测、科学而且充满乐趣的软件开发方式。与其他方法论相比,其最大的不同在于: 在更短的周期内,更早地提供具体、持续的反馈信息。 在迭代的进行计划编制

测试方法:

橙三吉。 提交于 2020-01-18 08:57:34
测试方法的划分 一般的,从看不看代码来划分黑、白盒测试。看代码和内部接口称为白盒测试,否则是黑盒测试方法。 而从软件是否运行的角度来划分静态和动态测试。不运行代码是静态测试,反之就是动态测试。 那么从我们人来参与的角度来看人工测试和自动化测试的。 黑、白、灰盒测试 刚才说了,我们从看不看代码来划分黑、白盒测试。 那黑盒测试可以有静态测试和动态测试,也可以有人工测试和自动化测试。 当然,白盒测试也是一样的。 比如我们要测这个自动售货机。 我们投币然后得到饮料;或者刷卡、扫码等都能得到想要的饮料。 我们做黑盒测试就是测试投币相关的逻辑、选择饮料相关的逻辑,找零或其他的逻辑。 这是我们不管内部结构,只是根据一些数据测试输入输出,比如投币5毛钱,却能得到一瓶2.5的饮料,这就是bug了。 等等等..... 除此之外,我们还需要看内部代码的逻辑,比如如何处理银行和第三方支付的接口逻辑,本地的饮料存储、统计等,看看相关关联的数据之间的交互。这些都是白盒测试范畴。 在测试之前,我们要搞清楚被测对象应该是什么样的,然后实际做出来的和预期进行比较,这样就能及时的发现缺陷;根据被测对象不同,而采用不同的测试方法。 白盒测试 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况。 白盒测试是基于程序结构的逻辑驱动测试。

动态编程

一个人想着一个人 提交于 2020-01-18 08:26:51
侵删 https://www.cnblogs.com/wyh19941210/p/9628532.html 一、元数据的介绍 元数据是用来描述数据的数据(Data that describes other data) 。单单这样说,不太好理解,我来举个例子。下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子: (她)年纪已经不轻,三十岁上下,个子高挑,身材匀称,黑黑的眉毛,红红的脸蛋--一句话,不是姑娘,而是果冻,她那样活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑,动不动就发出一连串响亮的笑声:哈,哈,哈! 这段话里提供了这样几个信息:年龄(三十岁上下)、身高(个子高挑)、相貌(身材匀称,黑黑的眉毛,红红的脸蛋)、性格(活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑)。有了这些信息,我们就可以大致想像出瓦莲卡是个什么样的人。推而广之,只要提供这几类的信息,我们也可以推测出其他人的样子。这个例子中的"年龄"、"身高"、"相貌"、"性格",就是元数据,因为它们是用来描述具体数据/信息的数据/信息。 当然,这几个元数据用来刻画个人状况还不够精确。我们每个人从小到大,都填过《个人情况登记表》之类的东西吧,其中包括姓名、性别、民族、政治面貌、一寸照片、学历、职称等等......这一套元数据才算比较完备。 在日常生活中,元数据无所不在。有一类事物

软件测试基础面试题

倾然丶 夕夏残阳落幕 提交于 2020-01-16 05:15:16
(1)什么是软件测试?软件测试的目的与原则? 定义:在规定的条件下对程序进行操作,以发现程序错误、衡量软件质量,并对其是否能满足设计要求进行评估的过程。 目的:在于发现错误、发现程序中存在的代码或业务逻辑错误、检验产品是否符合用户的需求、提高用户体验。 原则:如二八原则、测试应尽早启动、介入。 (2)什么是软件质量? 软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 (3)软件的生命周期? 计划阶段----需求分析----设计阶段----编码----测试----运行与维护 (4)软件生存周期及其模型? 整个生存周期包括:问题的定义及规划、需求分析/评审、软件设计、软件编码、测试阶段、运行维护六个时期 周期模型:瀑布模型、迭代模型 (5)软件测试分为那几个阶段? 单元测试、继承测试、系统测试、验收测试是个主要阶段 单元测试:通常由开发人员进行 集成测试:将模块按照设计要求组装起来进行测试,主要目的是发现与接口相关的问题 系统测试:是在继承测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求 验收测试:上线前的最终测试 (6)什么是测试用例?测试脚本?两者的关系是什么? 用例:未实施而编制的一组测试输入、执行条件、各种环境设置以及预期结果以及期望结果的一个特定的集合 脚本

烂代码 git blame

喜欢而已 提交于 2020-01-13 04:09:03
关于烂代码的那些事(上) - Axb的自我修养 http://blog.2baxb.me/archives/1343 关于烂代码的那些事(上) 六月 21, 2015 57 条评论 目录 [ 显示] 1.摘要 最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周。为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事。 这里是上篇,谈一谈烂代码产生的原因和现象。 2.写烂代码很容易 刚入程序员这行的时候经常听到一个观点:你要把精力放在ABCD(需求文档/功能设计/架构设计/理解原理)上,写代码只是把想法翻译成编程语言而已,是一个没什么技术含量的事情。 当时的我在听到这种观点时会有一种近似于高冷的不屑:你们就是一群傻X,根本不懂代码质量的重要性,这么下去迟早有一天会踩坑,呸。 可是几个月之后,他们似乎也没怎么踩坑。而随着编程技术一直在不断发展,带来了更多的我以前认为是傻X的人加入到程序员这个行业中来。 语言越来越高级、封装越来越完善,各种技术都在帮助程序员提高生产代码的效率,依靠层层封装,程序员真的不需要了解一丁点技术细节,只要把需求里的内容逐行翻译出来就可以了。 很多程序员不知道要怎么组织代码、怎么提升运行效率、底层是基于什么原理,他们写出来的是在我心目中烂成一坨翔一样的代码。 但是那一坨翔一样代码竟然他妈的能正常工作。

对日外包日语单词

微笑、不失礼 提交于 2020-01-11 02:51:25
ユーザー(user,用户) プログラム(program,程序) せつぞく(连接) ディレクトリー(directory,目录) テンプレート(template,模板) 客户端(クライアント) 菜单(メニュー) 密码(パスワード) 下载(ダウンロード) 启动(起動(きどう)) 格納(かくのう)(保存)登録(とうろく)(登录)圧縮(あっしゅく)ファイル(压缩文件) タブ画面(がめん)(Tab 画面) 共(とも)享(とおる)(共有) 删除(削除(さくじょ)) 清空(クリア)更新(こうしん)(更新) 発注(はっちゅう)(订货)プロジェクト(ぷろじぇくと)(project,项目)打(う)ち合わせ(商洽) 送 付(发送) 贵公司(御社(おんしゃ)) 我公司(弊社(へいしゃ)) 邮件地址(メールアドレス) 附件 (添付(てんぷ)ファイル) 進捗(しんちょく)(进展)納期(のうき)(交货期) チェック(check,检查) レビュー(review, 检查、评审、复审) 源代码(ソース,source) 编写代码(コーディング,coding) 日程管 理(日程(にってい)管理(かんり)にってかん) 向外部订货(外注(がいちゅう)) 五, 仮テーブル(临时表) サブウィンドウ(subwindow,子窗口) デフォルト (default,默认)取引先(とりひきさき)(交易方,顾客) 初始值(はつはじめ值)