电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

科研实验室-科学编程箴言

15页
  • 卖家[上传人]:1818****572
  • 文档编号:121947309
  • 上传时间:2020-02-28
  • 文档格式:PPTX
  • 文档大小:84.60KB
  • / 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

      4、escent Public Variablelist Private Variablelist Public vectorcomputeGrad vectorxt additionalvariable computegradientoffvectorcomputeDir vectorxt additionalvariable computesearchdirectionfloatcomputeObj vectorxt additionalvariable computeobjectivevalueffloatlineSearch vectorxt additionalvariable findagoodstepsizealphavoidmainGradDescent vectorxt vectordir floatalpha letxt xt alphadir 上面设计中 每个独立可以单独进行调试 甚至可以委托其他人进行调试 在写程序的时候 任何一个部分都要调试 这样就能缩小调试的规模 10 title 模块化编码原则及调试 编程小技巧 函数对齐变量对齐注释对齐成对编程等号前后需空格i

      5、nta 3 函数或者变量定义时 类型名长的放在前面 类型名短的放在后面 方便对齐 例如vector比float长 因此放在前面 11 title 模块化编码原则及调试 模块化调试技巧 原因功能 输入 输出 预期输出调试方案 单元化 可能出错在什么地方 经验 attention 12 title 草稿撰写与科研编程 在科研编程中 草稿编写极为重要 是正确编程和创新的前提 有草稿才能做到 按图索骥 有案可查 方便代码检查和调试 有的同学做科研完全就是乱试 各种调参 各种试模块 完全不从原理上进行斟酌 成败全靠运气 甚至宁愿几个月瞎猫撞死老鼠 也不愿意认真打磨草稿 这是极其不对的 切忌毫无目的的乱试 正确的流程一定是先完成草稿 与导师进行沟通 反复打磨方案 确定方案后 先完成总体框架 然后进行模块化设计 编写伪代码并设计调试方案 模块化设计中 有必要确定关键模块 一般涉及论文关键创新点 并集中进行攻关 编程时 变量名称和函数名称尽量去草稿保持一致 方便他人阅读和专家调试 13 title 面向对象编程注意事项 将功能对象化 而不是简单的函数来实现 这是c 等面向对象编程最重要的特点 这个思想

      6、其实很简单 每个函数都是一个封闭的模块 都有自己的变量 同时它又需要用到别的变量和函数 而这些函数可能是某个类所具有的 可以直接使用 那么此时就可以将这个类继承下来 既能够重复利用资源 减少工作量 也能够保证功能的独立性 在面向对象编程的方法中 一直考虑继承是一种封闭的思维方法 正确的方法是用对象接口的方法 真正的面向对象的方法是提供一种实现的接口 何时对象化 首先 如果一个功能必须是同时使用的 几个部分同时使用该功能 那么就要对该功能对象化 如果这些功能是串行的 那就没必要对象化 不是所有的东西都要对象化 有的功能用函数代替可能更简单 更快捷 总体原则是 如果需要对象化某个功能 一定要使这个功能的价值最大化 14 title 面向对象编程注意事项 类里面的变量是不放到函数里面去的 但是函数可以使用他们 也就相当于可将函数内部的几个参数先放到一起 调用的时候不再调用参数 也不用传递这些参数 做对象化时的一个准则是 针对不同的应用去设计程序 而不是针对一种所谓的虚拟模型去设计一个对象 也就是说 不要在程序设计的时候搞的大而全 这没有一点好处 将问题的规模缩小 更容易控制程序 编写函数时 先写真正的函数 再取函数的头和注释放到头文件中做函数的原型 一定要去除所有的编译警告 这样会使程序能够很好的运行 在面向对象编程中 程序流程图在实现某个功能 函数 时依然显得很重要 15 title 谢谢

      《科研实验室-科学编程箴言》由会员1818****572分享,可在线阅读,更多相关《科研实验室-科学编程箴言》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 武汉专版七年级英语下册Unit1Canyouplaytheguitar第四课时作业课件新版人教新目标

    武汉专版七年级英语下册Unit1Canyouplaytheguitar第四课时作业课件新版人教新目标

  • 山西专版七年级英语下册Unit5Whydoyoulikepandas第三课时作业课件新版人教新目标

    山西专版七年级英语下册Unit5Whydoyoulikepandas第三课时作业课件新版人教新目标

  • 武汉专版七年级英语下册Unit1Canyouplaytheguitar第二课时作业课件新版人教新目标

    武汉专版七年级英语下册Unit1Canyouplaytheguitar第二课时作业课件新版人教新目标

  • 武汉专版七年级英语下册Unit5Whydoyoulikepandas第四课时作业课件新版人教新目标

    武汉专版七年级英语下册Unit5Whydoyoulikepandas第四课时作业课件新版人教新目标

  • 武汉专版七年级英语下册Unit5Whydoyoulikepandas第一课时作业课件新版人教新目标

    武汉专版七年级英语下册Unit5Whydoyoulikepandas第一课时作业课件新版人教新目标

  • 山西专版七年级英语下册Unit5Whydoyoulikepandas单元写作专项作业课件新版人教新目标

    山西专版七年级英语下册Unit5Whydoyoulikepandas单元写作专项作业课件新版人教新目标

  • 山西专版七年级英语下册Unit1Canyouplaytheguitar特色题型组合练作业课件新版人教新目标

    山西专版七年级英语下册Unit1Canyouplaytheguitar特色题型组合练作业课件新版人教新目标

  • 九年级历史上册第一单元古代亚非文明第3课古代尤作业课件新人教

    九年级历史上册第一单元古代亚非文明第3课古代尤作业课件新人教

  • 九年级历史上册第五单元走向近代第13课西欧经济和社会的发展作业课件新人教

    九年级历史上册第五单元走向近代第13课西欧经济和社会的发展作业课件新人教

  • 山西专版七年级英语下册Unit12Whatdidyoudolastweekend单元语法专项作业课件新版人教新目标

    山西专版七年级英语下册Unit12Whatdidyoudolastweekend单元语法专项作业课件新版人教新目标

  • 山西专版七年级英语下册Unit1Canyouplaytheguitar单元写作专项作业课件新版人教新目标

    山西专版七年级英语下册Unit1Canyouplaytheguitar单元写作专项作业课件新版人教新目标

  • 九年级历史下册第四单元经济大危机和第二次世界大战第14课法西斯国家的侵略扩张作业课件新人教版202105181

    九年级历史下册第四单元经济大危机和第二次世界大战第14课法西斯国家的侵略扩张作业课件新人教版202105181

  • 九年级历史上册第四单元封建时代的亚洲国家第11课古代日本作业课件新人教

    九年级历史上册第四单元封建时代的亚洲国家第11课古代日本作业课件新人教

  • 八年级英语下册Module1FeelingsandimpressionsUnit2IfeelnervouswhenIspeakChinese小册子作业课件新版外研版

    八年级英语下册Module1FeelingsandimpressionsUnit2IfeelnervouswhenIspeakChinese小册子作业课件新版外研版

  • 八年级英语下册Module9FriendshipUnit1CouldIaskifyou'vementionedthistoher小册子作业课件新版外研

    八年级英语下册Module9FriendshipUnit1CouldIaskifyou'vementionedthistoher小册子作业课件新版外研

  • 九年级化学上册第1章开启化学之门第3节怎样学习和研究化学第1课时课件沪

    九年级化学上册第1章开启化学之门第3节怎样学习和研究化学第1课时课件沪

  • 山西专版七年级英语下册Unit1Canyouplaytheguitar第二课时作业课件新版人教新目标

    山西专版七年级英语下册Unit1Canyouplaytheguitar第二课时作业课件新版人教新目标

  • 九年级历史下册第三单元第一次世界大战和战后初期的世界第11课苏联的社会主义建设教学课件新人教

    九年级历史下册第三单元第一次世界大战和战后初期的世界第11课苏联的社会主义建设教学课件新人教

  • 九年级历史上册第五单元走向近代第16课早期殖民掠夺作业课件新人教

    九年级历史上册第五单元走向近代第16课早期殖民掠夺作业课件新人教

  • 2021春七年级历史下册第二单元辽宋夏金元时期民族关系发展和社会变化第12课宋元时期的都市和文化习题课件新人教版

    2021春七年级历史下册第二单元辽宋夏金元时期民族关系发展和社会变化第12课宋元时期的都市和文化习题课件新人教版

  • 点击查看更多
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.