软件开发知行合一 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
最近在走读团队的代码,有时实在是看不下去。不是因为他们的代码编写有很多Bugs,而是没有设计实现太复杂了。当面对众多的需求需要快速实现,没有几个人会去思考代码怎么写结构才更合理,而是在不断去搬砖垒需求。当我去咨询他们为什么要这样实现时,每个人能只能说出一,不知其二。即使自己写的代码,也不知道当初为什么这么实现。
同时,我们团队中不乏有各种兴趣小组。例如学习新的技术框架,交流设计模型,讨论重构技巧、性能优化经验。而实际在操作层面上,代码却正如前面所讲,有时真的不堪入目。由于这近在看王阳明传,突然想到我们没有知行合一啊。知 :一方面是我们对技能掌握,如程序语言知识,设计模式,框架类库等;另一面是我们对需求理解,如场景梳理,用例分析,关键指标等。行 :能根据掌握的知识技能,以及对需求的认识应用于项目中,能过代码转化为实际客户所需的产品。
结合按王阳明的学说,做为一名合理的软件工程师,则需要格物致知,知行合一,良知和致良知。
格物致知 :
格需求。对需求不断地格,才能知道客户真正需要什么。因为客户的提出需求时,往往是感性的,非技术化的描述,也可能是模糊不清晰的。那就需要我们不断去交流与...阅读全文

Grub引导Win10 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
阅读:824 字 ~2分钟个人有两台笔记本电脑,一台Sony安装Win10,平时给岳父上上网,自己使用比较少;另一台是MBA,自己在捣腾点代码,写点东西。今天心血来潮,想体验一个KDE的plasma 5,于是又来折腾Sony安装双系统。由于在使用MBA之前,也在Sony上安装过Archlinux,不过后来安装Win10,又把Archlinux删除了。这次的双系统,Linux还是选择Archlinux。
安装Archlinux按照Wiki一路下来很顺利,最后安装plasma,使用了一下,感觉也不够如此,可能是使用Mac OSX时间长了的原因。后面发现想回到Win10,发现Grub默认没有生成Win10的引导菜单。
我的Sony本本比较老,并不支持UEFI,所以系统选择安装Grub来引导。
# grub-install --target=i386-pc --recheck /dev/sda# grub-mkconfig -o /boot/grub/grub.cfg采用grub-mkconfig生成的grub.cfg并没有引导Win10的菜单,解决方法如下。为了实现多系统启动,需要安装...阅读全文

软件架构设计 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
什么是软件架构设计依稀记得公司的软件架构培训材料中说到软件架构=组件+交互。最近读温昱的《软件架构设计》才知道这只是其中一大阵营的观点。而软件架构在定义上分为“组成派”和“决策派”两大阵营。“组成派”认为软件架构是将系统描述成计算组件及组件之间的交互;而“决策派”认为软件架构包含了一系列的决策。事实上,从我司实际操作来看,两种观点并不是互斥的,而是相辅相成。两种观点只是站在不同的角度来看待软件架构。架构师在分割组件模块时,选择备选方案时,也是会不得不去作出各种决策,架构没有最完美的,只有在特定场景需求下最合适的。
“组成派”的两个明显的特点:
关注架构实践的客体——软件,以软件本身作为描述对象。分析了软件的组成,说明软件不是一个‘原子’意义上的整体,而是有不同的部分经过特定的接口进行连接组成的一个整体,这对软件开发来说很重要。“决策派”的两个明显的特点:
关注软件架构中的实体——人,以人的决策为描述对象。归纳了软件架构决策的类型,指出架构决策不仅包括关于软件系统的组织、元素、子系统和架构风格等几类决策,还包括关于众多非功能性需求的决策。按照“组成派”的观点,软件架构关注的是软件整...阅读全文

使用tmux - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
什么是tmuxtmux是一个支持多会话独立运行的优秀的终端复用软件。它类似GNU Screen,自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。
tmux的使用场景Mac自带的Iterm2很好用啊。既支持多标签,也支持窗体内部Panel的分割,为什么还要用tmux?
与VIM配合使用,打造出更高效、更优雅的终端工具。尤其是在当前大屏幕显示器下,多标签和分割窗体,无缝跳转。既可使用vim来写代码,也可使用tmux来查询代码编译与支行结果。提供了一个窗体组随时存储和恢复的功能。调试程序,开了一堆窗口。出去吃了个饭,发现SSH超时了,如果使用tmux就attach就能找回原来打开的那些窗口。tmux的基本概念tmux的主要元素分为三层:
Session会话: 一组窗口的集合,通常用来概括同一个任务。session可以有自己的名字便于任务之间的切换。Window 窗口: 单个可见窗口。Windows有自己的编号,也可以认为和ITerm2中的Tab类似。Pane 窗格...阅读全文