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