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

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

3天内不再提示

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

工程师人生 来源:wv 作者:简书网 2019-09-05 15:39 次阅读

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

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

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

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

对需求的理解

对现实条件的评估

对工程的预期(人月)

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

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

需求理解力

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

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

现实条件的贯通力

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

人月评估力

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

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

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

对突发状况的应对措施

万剑归宗:应变调整力

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

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

    关注

    8

    文章

    217

    浏览量

    20926
收藏 人收藏

    评论

    相关推荐

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布了其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类工程师的水准。
    的头像 发表于 03-13 10:57 379次阅读

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何搞崩一个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

    优秀电源工程师需要哪些必备技能?

    。1、建模仿真电路建模仿真是电源工程师必备技能之一。它是电源开发过程中不可或缺的一个环节,可以帮助工程师们验证设计方案的准确性与可行性。电源建模仿真软件根据研究方向分为电气仿真和磁器件仿真:电气仿真
    发表于 01-29 11:29

    嵌入式软件工程师常用的

    最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。PlatformIO:多平台支持:PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32
    的头像 发表于 12-24 08:00 233次阅读
    嵌入式<b class='flag-5'>软件工程师</b>常用的

    电子工程师第一天上班就暴揍师傅。。。#科普 #示波器 #电子工程师 #打工日记

    电子工程师示波器
    安泰小课堂
    发布于 :2023年12月18日 17:36:12

    嵌入式硬件和软件哪个好?

    ,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能! 那对于嵌入式软件工程师来说: 嵌入式软件工程师领域较新,他的发展也是很快的,像
    发表于 12-05 15:17

    FPGA工程师需要具备哪些技能?

    工程师需要考虑时序约束、时钟网络设计、数据路径优化等因素。较常用的布局布线工具有ALLEGRO PCB和Orcad等软件。在使用EDA工具之前,FPGA工程师需要了解所需的电路元件,例如寄存器,计数器
    发表于 11-09 11:03

    嵌入式软件好还是硬件好?

    电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能! 那对于嵌入式软件工程师来说: 嵌入式软件工程师领域较新,他的发展也是很快的,像这类技术都是看经验的,经验
    发表于 09-18 15:31

    为什么嵌入式软件工程师需要掌握 Linux?

    ,都默认支持 Linux 操作系统。 可以说, 打开 Linux 这扇门,你才是合格的软件工程师 。如果不能
    的头像 发表于 07-21 18:15 1322次阅读
    为什么嵌入式<b class='flag-5'>软件工程师</b>需要掌握 Linux?

    热门推荐:硬件工程师必备工具

    硬件PCB产品顺利投产。 华秋DFM可制造性检查软件,在硬件开发流程中起到了非常关键的作用,对于广大硬件工程师来说具有很大的便利性和实用性。 华秋DFM软件下载地址(复制到电脑浏览器打开
    发表于 06-21 10:15

    电子工程师必看书籍推荐#知识分享 #知识科普 #交流#硬声创作季

    电子工程师
    也许吧
    发布于 :2023年05月24日 10:47:34