Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
序員版和主版面的區(qū)別是:
程序員版開始于2019年4月11號, 主版面開始于2018年3月
? 唐僧叨叨:仿 Telegram 的自研開源聊天軟件 - 更多介紹
歡的可以轉(zhuǎn)發(fā)收藏加關(guān)注
搞軟件的人,編程語言的掌握是基本功,如果單單是學習語法,最慢的一周之內(nèi)也應該可以搞定(個人認為 語法層面c++是最復雜的)。不幸的是,軟件的本質(zhì)是邏輯,解決方案的設計是要借助某種解決問題或編程的思想的。本文試圖從抽象層面概括一點編程思想方面的東西。
一 c語言
1、相關(guān)概念:實模式、保護模式、調(diào)度、中斷、調(diào)用棧、回調(diào)……基本上計算機科學里面的基本概念都會涉及
2、編程思想:結(jié)構(gòu)化編程,即將解決方案描述為一個清晰的過程,這其中會涉及數(shù)據(jù)的建模(數(shù)據(jù)結(jié)構(gòu)),接口的定義(函數(shù)),項目整體的組織結(jié)構(gòu)(類似于中斷向量表的注冊、回調(diào)機制)。整個實現(xiàn)的過程就是這種流程從粗到細,步步細化的過程。
3、適合的領域:編譯系統(tǒng)(很容易劃分為 lexer、parser、walker等)、OS(很容易分成 cpu相關(guān)、內(nèi)存相關(guān)、外設相關(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(應用領域相關(guān))……
2、編程思想:過程化、oo、泛型、函數(shù)式 4種同時支持,實際中用OO比較多。
3、適合領域:多媒體、高性能網(wǎng)絡服務器等較講究效率的應用程序
三 java
1、相關(guān)概念:字節(jié)碼、虛擬機、垃圾回收、接口、多線程、包、程序庫、反射、框架、集成、組件、http、web、數(shù)據(jù)庫、SSH、javaee……
2、編程思想:OO,即思考的角度是更面向問題域的對象,整個程序是對象不斷細化,以及對象間交互的過程(調(diào)用相應的方法)。java的程序比較講究擴展性和可維護性,一般會使用比較多的設計模式,常用的程序組織形式是MVC、監(jiān)聽者模式等。
3、適合領域:大部分沒有硬實時要求的應用程序(可能正因為此,所以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、適合領域: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ā)那個斷點)
請關(guān)注+私信回復:“學習”就可以免費拿到C、C++學習資料
關(guān)于 C++ 框架、庫和資源的一些匯總列表,內(nèi)容包括:標準庫、Web應用框架、人工智能、數(shù)據(jù)庫、圖片處理、機器學習、日志、代碼分析等。
C++標準庫,包括了STL容器,算法和函數(shù)等。
C++通用框架和庫
音頻,聲音,音樂,數(shù)字化音樂庫
生物信息,基因組學和生物技術(shù)
壓縮和歸檔庫
并發(fā)執(zhí)行和多線程
數(shù)據(jù)庫,SQL服務器,ODBC驅(qū)動程序和工具
調(diào)試庫, 內(nèi)存和資源泄露檢測,單元測試
動力學仿真引擎
一些有用的庫或者工具,但是不適合上面的分類,或者還沒有分類。
用于創(chuàng)建開發(fā)環(huán)境的軟件
C/C++編譯器列表
在線C/C++編譯器列表
提高質(zhì)量,減少瑕疵的代碼分析工具列表
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。