0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件工程师如何做出合理的设计

工程师人生 来源:wv 作者:简书网 2019-09-05 15:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

不断的复制粘贴和简单排列组合的人叫码农,明白自己编程设计的人叫软件工程师

了解 C语言 的过程式,HTML/css/js 的文档声明式,Java/Ruby 的面向对象式,Golang 的组合式和最近看的 Lisp(Scheme) 的函数式这些不同的思维模式让我渐渐明白了:一个优秀的软件工程师应该在基本的计算机知识上,有整体意识,有大局观,在工程中的各个阶段做出最合理的设计决策,注意这里说的是合理,而不是最好,因为工程是为了解放人类脑力和体力。

设计决策大到设计语言选型,数据库,软件架构,网络协议,小到模块设计,类,方法,变量命名。我记得高中有个足球教练说过:一个人会不会踢球,看他踢一脚就够了。

那么问题来了,如何做出合理的设计呢?

对需求的理解

对现实条件的评估

对工程的预期(人月)

平衡 1. 2. 3. 作出用于试错的决策计划

小步试错,在可接受的时间点之前作出合理项目计划

需求理解力

程序员和差程序员的区别在于理解能力 --《简约之美:软件的设计之道》

是的,我们写的每一行代码,每一行注释都是为了直接或者间接的实现某种实际价值,而不是研究某个学术或者练习英语。所以了解需求至关重要,其实说白了就是对数据作怎样的处理。不同的行业有不同的特点,不同需求有不同的价值实现诉求,深入了解要解决的领域问题,然后以在更高的视角抽象成计算机能理解模型,所谓“艺术源于生活,但高于生活”。

现实条件的贯通力

这里主要涉及的是计算机专业领域的基本功即:操作系统,计算机网络,数据库,算法与数据结构,语言相关设计模型等。我们没有必要将各个算法各个协议倒背如流,能查文档的没必要往自己脑子里硬塞。要明白的是:以上每个领域的设计都有很强的需求背景,我们所要了解的是,在历史的角度上,它们是为了解决哪类问题而逐渐演化发展而来的,各中解决方案之间有何联系和区别,考虑自己的应用场景,如何从前辈的设计方案中做抽取,组合,修改和扩展。

人月评估力

有了以上的基本客观条件,最难得就是对人的评估。

对自己/团队成员水平的评估

对新技术的调研和学习时间

对突发状况的应对措施

万剑归宗:应变调整力

唯有变化是不变的,在实践中不断磨练自己应对变化的调整能力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    243

    浏览量

    21688
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    你知道电子工程师,到底分几种吗?

    第一种,硬件工程师:他们擅长画原理图、选元器件、调板子,是电路的专家、产品项目的“总导演”!第二种,软件工程师:脑子里全是代码,天天跟驱动、算法打交道,芯片怎么跑,他们说了算。第三种,固件工程师
    的头像 发表于 04-20 08:52 95次阅读
    你知道电子<b class='flag-5'>工程师</b>,到底分几种吗?

    电子工程师的双标瞬间 #电子 #电子爱好者 #电子工程师 #扬兴科技 #双标

    电子工程师
    扬兴科技
    发布于 :2026年03月02日 18:04:13

    电子工程师看书的四个阶段 #电子 #硬件工程师 #电子爱好者 #反转 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2026年01月17日 17:29:53

    什么是BSP工程师

    一、嵌入式系统 要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起。维基百科上对嵌入式系统的定义如下: 嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部
    发表于 01-13 06:54

    开源鸿蒙技术大会2025丨AI软件工程分论坛:智能创新,赋能开源鸿蒙软件工程

    师生深度参与技术交流联动。论坛由华为终端软件工程与IT装备部孙为国与开源鸿蒙AI软件工程SIG副组长王意明联合出品。此次论坛的成功举办标志着开源鸿蒙AI软件工程从技术探索步入规模落地阶段,预计2025年底将赋能10万+开发者。
    的头像 发表于 11-20 17:32 1220次阅读
    开源鸿蒙技术大会2025丨AI<b class='flag-5'>软件工程</b>分论坛:智能创新,赋能开源鸿蒙<b class='flag-5'>软件工程</b>

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 513次阅读
    <b class='flag-5'>工程师</b>变身AI“指挥者”,吉利与阿里云的<b class='flag-5'>软件</b>开发变革实验

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    招镶入式工程师1个,硬件工程师一个,

    东莞市研生科技有限公司是一家蓝牙方案公司,主营蓝牙方案的设计开发,产品包括蓝牙BLE/4G透传/AI智能体方案开发,因公司发展需要需对外招聘嵌入式软件开发工程师,对蓝牙音频/BLE以及智能IC读卡器有三年实操经验,能单独完成项目的软件
    发表于 08-29 02:14

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57