2021-02-07 分類: 網(wǎng)站建設(shè)
搞軟件的人,編程語言的掌握是基本功,如果單單是學(xué)習(xí)語法,最慢的一周之內(nèi)也應(yīng)該可以搞定(個人認為 語法層面c++是最復(fù)雜的)。不幸的是,軟件的本質(zhì)是邏輯,解決方案的設(shè)計是要借助某種解決問題或編程的思想的。本文試圖從抽象層面概括一點編程思想方面的東西。
一 c語言
1、相關(guān)概念:實模式、保護模式、調(diào)度、中斷、調(diào)用棧、回調(diào)……基本上計算機科學(xué)里面的基本概念都會涉及
2、編程思想:結(jié)構(gòu)化編程,即將解決方案描述為一個清晰的過程,這其中會涉及數(shù)據(jù)的建模(數(shù)據(jù)結(jié)構(gòu)),接口的定義(函數(shù)),項目整體的組織結(jié)構(gòu)(類似于中斷向量表的注冊、回調(diào)機制)。整個實現(xiàn)的過程就是這種流程從粗到細,步步細化的過程。
3、適合的領(lǐng)域:編譯系統(tǒng)(很容易劃分為 lexer、parser、walker等)、OS(很容易分成 cpu相關(guān)、內(nèi)存相關(guān)、外設(shè)相關(guān)、進程相關(guān))、DBMS等系統(tǒng)軟件,或者是靠近
硬件的嵌入式系統(tǒng)(除了匯編就只能用c了)
二 c++
1、相關(guān)概念:虛函數(shù)、虛表、內(nèi)聯(lián)、多繼承、const、泛型、模板(語言相關(guān))……opencv、OGRE、3D渲染、GPU、mesh、skeleton、幀循環(huán)、DX、GUI、MFC、Qt、消息隊列、非阻塞IO(應(yīng)用領(lǐng)域相關(guān))……
2、編程思想:過程化、oo、泛型、函數(shù)式 4種同時支持,實際中用OO比較多。
3、適合領(lǐng)域:多媒體、高性能網(wǎng)絡(luò)服務(wù)器等較講究效率的應(yīng)用程序
三 java
1、相關(guān)概念:字節(jié)碼、虛擬機、垃圾回收、接口、多線程、包、程序庫、反射、框架、集成、組件、http、web、數(shù)據(jù)庫、SSH、javaee……
2、編程思想:OO,即思考的角度是更面向問題域的對象,整個程序是對象不斷細化,以及對象間交互的過程(調(diào)用相應(yīng)的方法)。java的程序比較講究擴展性和可維護性,一般會使用比較多的設(shè)計模式,常用的程序組織形式是MVC、監(jiān)聽者模式等。
3、適合領(lǐng)域:大部分沒有硬實時要求的應(yīng)用程序(可能正因為此,所以java程序員的數(shù)量是最多的)
四 Javascript
1、相關(guān)概念:閉包、對象、函數(shù)、CSS、DOM、Ajax、HTML5、node.js、V8……
2、編程思想:基于prototype的OO,以及基于閉包的函數(shù)式編程(后者用的更多)。常用代碼組織形式:事件觸發(fā)的回調(diào)機制(node.js與前端的區(qū)別是其自己定義、觸發(fā)事件)、基于非阻塞異步IO的框架(node.js)
3、適合領(lǐng)域:web前端,
PS:有人覺得node.js適合做后端,我覺得不適合。node.js是比較通用的腳本引擎框架,我在實際進行開發(fā)時,發(fā)現(xiàn)node.js有這么幾個問題:
1、沒有原生的對于模塊化(如java的包)的支持
2、JS是無類型語言,很難看懂代碼邏輯(本質(zhì)上邏輯是對數(shù)據(jù)的操作,沒有類型的信息就很難看懂代碼)
3、js的調(diào)試工具還是不夠好用
4、沒有統(tǒng)一的init的過程(很多的匿名閉包、以及無處不在的回調(diào)),很難捋清晰系統(tǒng)的組成和調(diào)用關(guān)系
5、完全異步觸發(fā)的模式,使得代碼很難讀(打斷點都不知道在哪打,即使打了斷點也要想點辦法來觸發(fā)那個斷點)
網(wǎng)頁題目:幾種常用編程語言的編程思想和方法
本文地址:http://m.rwnh.cn/news17/99617.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計公司、虛擬主機、網(wǎng)站維護、網(wǎng)站改版、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容