0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

軟件工程師如何做出合理的設(shè)計(jì)

工程師人生 ? 來源:wv ? 作者:簡(jiǎn)書網(wǎng) ? 2019-09-05 15:39 ? 次閱讀

不斷的復(fù)制粘貼和簡(jiǎn)單排列組合的人叫碼農(nóng),明白自己編程設(shè)計(jì)的人叫軟件工程師。

了解 C語言 的過程式,HTML/css/js 的文檔聲明式,Java/Ruby 的面向?qū)ο笫?,Golang 的組合式和最近看的 Lisp(Scheme) 的函數(shù)式這些不同的思維模式讓我漸漸明白了:一個(gè)優(yōu)秀的軟件工程師應(yīng)該在基本的計(jì)算機(jī)知識(shí)上,有整體意識(shí),有大局觀,在工程中的各個(gè)階段做出最合理的設(shè)計(jì)決策,注意這里說的是合理,而不是最好,因?yàn)楣こ淌菫榱私夥湃祟惸X力和體力。

設(shè)計(jì)決策大到設(shè)計(jì)語言選型,數(shù)據(jù)庫,軟件架構(gòu),網(wǎng)絡(luò)協(xié)議,小到模塊設(shè)計(jì),類,方法,變量命名。我記得高中有個(gè)足球教練說過:一個(gè)人會(huì)不會(huì)踢球,看他踢一腳就夠了。

那么問題來了,如何做出合理的設(shè)計(jì)呢?

對(duì)需求的理解

對(duì)現(xiàn)實(shí)條件的評(píng)估

對(duì)工程的預(yù)期(人月)

平衡 1. 2. 3. 作出用于試錯(cuò)的決策計(jì)劃

小步試錯(cuò),在可接受的時(shí)間點(diǎn)之前作出合理項(xiàng)目計(jì)劃

需求理解力

程序員和差程序員的區(qū)別在于理解能力 --《簡(jiǎn)約之美:軟件的設(shè)計(jì)之道》

是的,我們寫的每一行代碼,每一行注釋都是為了直接或者間接的實(shí)現(xiàn)某種實(shí)際價(jià)值,而不是研究某個(gè)學(xué)術(shù)或者練習(xí)英語。所以了解需求至關(guān)重要,其實(shí)說白了就是對(duì)數(shù)據(jù)作怎樣的處理。不同的行業(yè)有不同的特點(diǎn),不同需求有不同的價(jià)值實(shí)現(xiàn)訴求,深入了解要解決的領(lǐng)域問題,然后以在更高的視角抽象成計(jì)算機(jī)能理解模型,所謂“藝術(shù)源于生活,但高于生活”。

現(xiàn)實(shí)條件的貫通力

這里主要涉及的是計(jì)算機(jī)專業(yè)領(lǐng)域的基本功即:操作系統(tǒng),計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫,算法與數(shù)據(jù)結(jié)構(gòu),語言相關(guān)設(shè)計(jì)模型等。我們沒有必要將各個(gè)算法各個(gè)協(xié)議倒背如流,能查文檔的沒必要往自己腦子里硬塞。要明白的是:以上每個(gè)領(lǐng)域的設(shè)計(jì)都有很強(qiáng)的需求背景,我們所要了解的是,在歷史的角度上,它們是為了解決哪類問題而逐漸演化發(fā)展而來的,各中解決方案之間有何聯(lián)系和區(qū)別,考慮自己的應(yīng)用場(chǎng)景,如何從前輩的設(shè)計(jì)方案中做抽取,組合,修改和擴(kuò)展。

人月評(píng)估力

有了以上的基本客觀條件,最難得就是對(duì)人的評(píng)估。

對(duì)自己/團(tuán)隊(duì)成員水平的評(píng)估

對(duì)新技術(shù)的調(diào)研和學(xué)習(xí)時(shí)間

對(duì)突發(fā)狀況的應(yīng)對(duì)措施

萬劍歸宗:應(yīng)變調(diào)整力

唯有變化是不變的,在實(shí)踐中不斷磨練自己應(yīng)對(duì)變化的調(diào)整能力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件工程師
    +關(guān)注

    關(guān)注

    8

    文章

    217

    瀏覽量

    21112
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?

    ,還需要與軟件工程師、硬件工程師緊密合作,對(duì)整個(gè)系統(tǒng)進(jìn)行集成和測(cè)試。 總的來說,F(xiàn)PGA 算法工程師著重于算法優(yōu)化,F(xiàn)PGA 邏輯工程師專注于邏輯設(shè)計(jì),F(xiàn)PGA 原型驗(yàn)證
    發(fā)表于 09-23 18:26

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    硬件工程師如何做元器件變更的決策

    硬件工程師如何做元器件變更的決策某產(chǎn)品在從研發(fā)轉(zhuǎn)規(guī)模生產(chǎn)階段,采購部門給硬件工程師推薦了新的MOSFET(稱為A),該物料比該產(chǎn)品研發(fā)階段使用的MOSFET(稱為B)價(jià)格更低,且供貨渠道更友好。作為
    的頭像 發(fā)表于 07-06 08:17 ?417次閱讀
    硬件<b class='flag-5'>工程師</b><b class='flag-5'>如何做</b>元器件變更的決策

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個(gè)充滿機(jī)遇和挑戰(zhàn)的領(lǐng)域里,如何提升自己顯得非常重要,它決定了你未來的發(fā)展方向和成就。接下來,我們一起探討一下。 1.奠定扎實(shí)
    發(fā)表于 06-12 11:20

    索尼誠邀軟件工程師參與PS免費(fèi)手游平臺(tái)設(shè)計(jì)

    據(jù)悉,近日,澳大利亞知名媒體TweakTown發(fā)現(xiàn),索尼互動(dòng)娛樂正在為其旗下的PlayStation Studios Mobile招募一名資深的軟件工程師,負(fù)責(zé)設(shè)計(jì)PlayStation的免費(fèi)手機(jī)游戲平臺(tái)。
    的頭像 發(fā)表于 05-23 17:08 ?677次閱讀

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師軟件開發(fā)領(lǐng)域中的一種專業(yè)工程師
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識(shí) #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    Cognition發(fā)布首款A(yù)I軟件工程師Devin

    據(jù)報(bào)道,Cognition公司今日公布了其首款人工智能軟件工程師——Devin,掀起了打造軟件模式變革的序幕。該產(chǎn)品在SWE-bench代碼測(cè)驗(yàn)中展現(xiàn)出卓越表現(xiàn),甚至超過了部分頂級(jí)人類工程師的水準(zhǔn)。
    的頭像 發(fā)表于 03-13 10:57 ?583次閱讀

    如何構(gòu)建linux開發(fā)環(huán)境和編譯軟件工程、應(yīng)用程序

    前文介紹了如何使用官方提供的鏡像文件啟動(dòng)開發(fā)板,本文將說明如何構(gòu)建linux開發(fā)環(huán)境和編譯軟件工程、應(yīng)用程序。
    的頭像 發(fā)表于 01-03 12:31 ?1874次閱讀
    如何構(gòu)建linux開發(fā)環(huán)境和編譯<b class='flag-5'>軟件工程</b>、應(yīng)用程序

    嵌入式軟件工程師常用的

    最近我換工作了,看見不同嵌入式軟件工程師用的平臺(tái)都不一樣,所以我整理了一下。PlatformIO:多平臺(tái)支持:PlatformIO支持多種嵌入式平臺(tái),包括Arduino、ESP8266、ESP32
    的頭像 發(fā)表于 12-24 08:00 ?616次閱讀
    嵌入式<b class='flag-5'>軟件工程師</b>常用的