科研实验室-科学编程箴言
15页1、1 title 科学编程箴言 2 title 工程编程VS科研编程 3 title 工程编程VS科研编程 4 title 前言 规范的格式是入门的基础 任何编程需要有开阔的思维 严谨的作风 持久的耐心 比尔盖茨说 他招人的时候宁愿找一个学物理的 而不是学编程的 正确编程不仅要思维开阔还需要恒心 一旦你面对某个问题 你必须深入进去 达到一般人达不到的高度 科研编程要求绝对准确 因此必须坚持模块化编码原则 甚至为了确保准确性可以牺牲一定效率 编程技巧不是科研编程的关键 但是大众化的编程技巧需要掌握 科研编程要求尽可能明白所有关键模块的原理 而不是简单的拿来主义 需要反复揣摩细节 最好的学习方法 就是认真阅读一个被行业广泛认可的文章及其程序 关键词 成对编码原则 模块化编码原则 60行代码原则 代码规范化原则 最小编程原则 完全编程原则 5 title 行数和列数的限制 1 1一个函数的长度不应该超过60行当函数长度超过60行后 应该将内部一些复杂的逻辑提炼出来 形成新的函数 然后调用之 微型重构工作也应该无处不在 而不是等项目完成后再来重构 1 2每行代码长度建议不超过80字符建议每一行代
2、码的长度超过80字符时做折行处理 处理时请以结构清晰为原则 可以设置编辑器提醒 确保上述原则 1 3每个类原则上不超过600行 不强制 一个类不应该将很多复杂的逻辑揉合到一起来实现 我们约定当文件超过600行时 要考虑将这个文件进行拆分 可以使用协议方法来分离功能代码 如果逻辑过于复杂 则应该考虑从设计上将一些内部可以独立的逻辑提炼出来 形成新的类 6 title 成对编码原则 2 2成对内存分配与释放当你写一个内存分配函数的时候 马上接写一个语句释放这块内存 然后你再在中间插上你要用这个内存作什么 这是一个正确的快速的编程方法 绝对避免在程序中开辟内存 并将该内存返回上层函数 注意 代码不仅要格式规范还要注释清楚 而且要把你的设计思路尽量写清楚 让人能够轻易读懂注释格式是非常重要的 真正要做一个有价值的程序 开发程序的思维是很重要的 这种思维就体现在代码的规范及规范的注释上面 7 title 模块化编码原则及调试 所有的程序都是调试出来的 而不是写出来的 怎么调试就是解决问题的思路 也是创新的源泉 有的同学的调试思路就是 能够运行成功就算是调试成功 这是大错特错 是还没入门的表现 相
3、对语法错误 逻辑错误是极难发现的 逻辑错误 意味着编程错误 意味着好的点子没有正确实现 导致很多好点子被庸人耽误了 C C 语言有着严格的语法规则 逻辑错误往往意味着语法错误 因此 如果程序能够编译运行 的确是一个不小的进展 即便如此 也根本无法避免逻辑错误 对于Python等高级语言而言 语法规则不再复杂 语法出错几率大大减小 但这也导致发现逻辑错误的机会大大减少 因此 仅仅是编译通过是绝对不行的 要做好科研 要成为一个高级的程序员 就必须通过调试这一关 如果不懂调试就永远都成不了高手 调试要花一个程序员更多的时间和精力 8 title 模块化编码原则及调试 程序调试的核心在于逻辑调试 而逻辑调试的核心在于模块化编程 模块化编程的核心在于分而治之 模块拆分 一个易读的函数或者模块的长度不应该超过60行 绝对不应该超过100行 确保任何函数或者模块可单独调试 确保模块独立性 保证函数或者模块可单独调试 可以大大简化调试难度 以基于梯度的下降算法为例 其基本更新公式是xt xt alpha dir 9 title 模块化编码原则及调试 可以进行如下模块化编程设计 C ClassGradD
《科研实验室-科学编程箴言》由会员1818****572分享,可在线阅读,更多相关《科研实验室-科学编程箴言》请在金锄头文库上搜索。
武汉专版七年级英语下册Unit1Canyouplaytheguitar第四课时作业课件新版人教新目标
山西专版七年级英语下册Unit5Whydoyoulikepandas第三课时作业课件新版人教新目标
武汉专版七年级英语下册Unit1Canyouplaytheguitar第二课时作业课件新版人教新目标
武汉专版七年级英语下册Unit5Whydoyoulikepandas第四课时作业课件新版人教新目标
武汉专版七年级英语下册Unit5Whydoyoulikepandas第一课时作业课件新版人教新目标
山西专版七年级英语下册Unit5Whydoyoulikepandas单元写作专项作业课件新版人教新目标
山西专版七年级英语下册Unit1Canyouplaytheguitar特色题型组合练作业课件新版人教新目标
九年级历史上册第一单元古代亚非文明第3课古代尤作业课件新人教
九年级历史上册第五单元走向近代第13课西欧经济和社会的发展作业课件新人教
山西专版七年级英语下册Unit12Whatdidyoudolastweekend单元语法专项作业课件新版人教新目标
山西专版七年级英语下册Unit1Canyouplaytheguitar单元写作专项作业课件新版人教新目标
九年级历史下册第四单元经济大危机和第二次世界大战第14课法西斯国家的侵略扩张作业课件新人教版202105181
九年级历史上册第四单元封建时代的亚洲国家第11课古代日本作业课件新人教
八年级英语下册Module1FeelingsandimpressionsUnit2IfeelnervouswhenIspeakChinese小册子作业课件新版外研版
八年级英语下册Module9FriendshipUnit1CouldIaskifyou'vementionedthistoher小册子作业课件新版外研
九年级化学上册第1章开启化学之门第3节怎样学习和研究化学第1课时课件沪
山西专版七年级英语下册Unit1Canyouplaytheguitar第二课时作业课件新版人教新目标
九年级历史下册第三单元第一次世界大战和战后初期的世界第11课苏联的社会主义建设教学课件新人教
九年级历史上册第五单元走向近代第16课早期殖民掠夺作业课件新人教
2021春七年级历史下册第二单元辽宋夏金元时期民族关系发展和社会变化第12课宋元时期的都市和文化习题课件新人教版