高级软件工程 学习总结和感想 正则表达式笔记分享

xshument 2022-07-10 20:36:21
  • 收获与感想

    很高兴能选到孟老师的高级软件工程这门课。孟老师讲课娓娓道来,循序渐进,使我对软件工程有了更深一步的了解。 
    对于程序员来说,如果只关注项目代码的具体实现,很容易就被淹没在茫茫多的代码中。无论是想真正的理解一个项目中代码的具体实现,亦或者是上手做一个项目,软件工程的知识都是非常重要的,甚至可以说是必要的。甚至可以说,只有掌握了软件工程相关的知识,才不会成为一个只会crud的码农。 
    软件工程是一个实践和理论并存的学科,很多理论都是从实践中慢慢总结经验才慢慢发展起来的, 也只有在实践中,这门课程才会发挥自己的真正作用。 

  • 学习的主要内容

    第一章从工具开始讲起,包括打字、VSCode、Git、Vim和正则表达式,这些是对于软件开发很重要的基本工具; 
    第二章使用一个menu程序为例,讲解工程化开发中需要注意的各种问题,包括环境配置、代码规范与代码风格、编写高质量代码的方法、模块化与接口、线程安全等,穿插讲解callback、微服务等知识点; 
    在第三章中,从获取需求讲起,讲述对需求进行分析和建模的方法,包括用用例建模、对业务领域进行建模、对业务数据进行建模,进一步的,介绍了敏捷统一过程的各个步骤; 
    在第四章中,讲述了软件是什么以及软件中的一些特殊机制,并引出了设计模式和软件的常见架构、软件的架构风格,最后介绍了软件的质量评价。 
    在第五章中,老师讲述了软件的生命周期和常见的模型,并介绍了PSP和TSP、CMM/CMMI、敏捷方法、DevOps等内容。 

  • Vim中使用正则表达式的笔记分享

    1./word 向下查找名称为word的字符串 
    2.?word向上查找名称为word的字符串 
    3.同时搜索多个字符串 /word1|word2|word3 
    4.大小写:底线命令行模式:set ignorecase ,set noignorecase 
    正则表达式/wordc(大小写不敏感),/WordC(大小写敏感) 
    5.通配符“.”,匹配任意一个字符。(hu . -> hug or hud or huc and so on) 
    6.通配符“+”出现一次或多次。 
    7.通配符“”出现零次或多次。
    8.通配符“?”,?之前的元素是否出现都匹配。
    9.字符出现次数为范围时:{num1,num2};例如:a{3,5}h,表示a出现3到5次;a{3,},表示 a出现3次以上。a{3},表示a出现三次。
    10.[letter1,letter2,letter3],表示只出现方括号中的一个字符,如b[au]g,匹配bug,bag。
    11.连字符“-”表示出现范围,如[a-z] 12.字符“^”定义不想出现的字符[^aeiou]
    13.快捷写法,简化规则10,11,12的组合:快捷方式\w -> [A-Za-z0-9]。 快捷方式\W -> [^A-Za-z0-9]。 快捷方式\d -> [0-9]。 快捷方式\D -> [^0-9]。
    14.贪婪匹配(默认)与懒惰匹配(懒惰匹配加个?):对于单词titanic,t[a-z]
    i,将匹配titani; t[a-z]*?i 将匹配ti
    15.特殊位置,字符串开头^word;字符串结尾$word; 
    16.捕获组:(d+)s\1s\1,表示字符串中出现3次数字。 
    17.字符串替换,1,$s/word1/word2/gc 或 :%s/word1/word2/gc 表示从第一行到最后一行进行全局的字符串替换,将word1替换成word2,c表示confirm,s表示substitute,g表示global。$表示end,之前有提及过。 
    18.复用捕获组的方式进行替换:1,\(s/(capture groups)/\)1/g 

  • 聚焦MVVM

    早期的前端开发就是单纯的html+css+js,html铺内容,css设置样式,js做动态效果,其效果相当有限;后来出现了jsp技术,采用MVC模型,页面主要内容可以由后端实现;再后来,前端逐渐独立出来,各种框架层出不穷,其技术复杂度渐渐与后端相当。如今不论是移动端的swiftUI还是前端的Vue、React,它们都采用了MVVM的模型。在这个发展的过程中,逐渐经历了架构上和设计逻辑上的变化,框架做的工作越来越多,程序员可以将更多精力放到业务的实现上。但,如果只是自满于框架的学习,那么就会疲于奔命,不停学习新的框架。要注意到,现代这些框架的本质是大差不差的,而软件工程正是揭示了其中的奥秘所在,即MVVM模型以及设计模式等。熟悉掌握这些知识,无疑会成为自己核心竞争力。 

  • 参考资料

    孟宁老师的课程主页:https://gitee.com/mengning997/se

 

 

...全文
73 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
发帖
代码中的软件工程

395

社区成员

软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
帖子事件
编辑了帖子 (查看)
2022-07-10 20:52
编辑了帖子 (查看)
2022-07-10 20:51
编辑了帖子 (查看)
2022-07-10 20:41
创建了帖子
2022-07-10 20:36