阿迪bounce的特點(diǎn) 為什么有很多出名開源的C/C 方面的高性能網(wǎng)絡(luò)庫,比如libevent,boost-asio,有些企業(yè)還要自己寫?
為什么有很多出名開源的C/C 方面的高性能網(wǎng)絡(luò)庫,比如libevent,boost-asio,有些企業(yè)還要自己寫?到底是自己造輪子,還是直接使用開源庫,我想很大程度上取決去部門老大的個(gè)人喜好。曾幾何
為什么有很多出名開源的C/C 方面的高性能網(wǎng)絡(luò)庫,比如libevent,boost-asio,有些企業(yè)還要自己寫?
到底是自己造輪子,還是直接使用開源庫,我想很大程度上取決去部門老大的個(gè)人喜好。曾幾何時(shí),C 開發(fā)者都熱衷于重復(fù)造輪子,那么為什么還有的企業(yè)要自己寫呢?下面談?wù)勛约旱目捶ǎ?/p>
1)項(xiàng)目初期并不知道有這個(gè)庫的存在,后面也懶得再引入。
2)很多第三方庫依賴的其他第三方庫都比較多,為了引入A庫,不得不引入B、C、D庫,這無疑增加了部門成員的學(xué)習(xí)成本。
3)第三方開源庫一般更新較頻繁,明知有Bug了,你們要不要更新呢?基礎(chǔ)庫的更新無疑要花費(fèi)更多的開發(fā)時(shí)間、測試時(shí)間。
4)讓項(xiàng)目整體可控性更強(qiáng),一旦引入的開源庫出現(xiàn)問題,而項(xiàng)目組有對它不熟悉,那么將是災(zāi)難性的。
5)已有開源庫過于復(fù)雜,學(xué)習(xí)成本高,組內(nèi)成員水平參差不齊。
最后附一張自己前段時(shí)間研讀的書籍。
本文為作者“一個(gè)程序員的奮斗史”悟空問答原創(chuàng)文章,未經(jīng)允許轉(zhuǎn)載、抄襲必究!
編程主要學(xué)什么內(nèi)容?
關(guān)注我,跟我從零開始學(xué)編程!
編程要使用程序設(shè)計(jì)語言來進(jìn)行,不同的語言在內(nèi)容上稍有區(qū)別。比如有面向?qū)ο笳Z言,面向過程語言,面向關(guān)系語言,腳本語言等等,當(dāng)然有的語言還屬于其中兩個(gè)分類,比如python既有函數(shù)又有方法。
可以說編程的主要工具就是各種語言,所以學(xué)習(xí)編程一定要學(xué)習(xí)如何使用各種編程語言。下面我就以java語言為例,說一下語言本身要學(xué)習(xí)哪些基本內(nèi)容:
- 面向?qū)ο蠡A(chǔ),包括類,對象,屬性,方法等基本概念的理解。
- 面向?qū)ο缶幊踢^程,包括類的設(shè)計(jì),對象的創(chuàng)建,方法的調(diào)用。
- 類型的定義,包括原始類型,類類型。這部分還會涉及一些規(guī)則,比如標(biāo)識符命名規(guī)則等。
- 流程控制和數(shù)組,包括單分支結(jié)構(gòu),多分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)。數(shù)組包括定義,賦值,多維數(shù)組等內(nèi)容。
- 封裝和繼承,這部分內(nèi)容是java學(xué)習(xí)的一個(gè)重點(diǎn),封裝的步驟,繼承的定義等。
- 高級特性和多態(tài),包括static,final,abstract等修飾符的使用,還有接口的定義和使用。多態(tài)的定義和規(guī)則總結(jié),包括三個(gè)定義和兩個(gè)方法。
- 異常處理和IO,程序中出現(xiàn)的各種不可預(yù)料的錯(cuò)誤如何處理,還有輸入輸出怎么編寫。
- 集合和序列化,不同結(jié)構(gòu)的集合如何定義和使用,如何完成對象的鈍化和激活。
- 圖形界面和事件處理,創(chuàng)建圖形應(yīng)用是這部分內(nèi)容的重點(diǎn),要了解事件處理的模式。
- 多線程和網(wǎng)絡(luò)通信,掌握多線程的創(chuàng)建過程和線程的轉(zhuǎn)換狀態(tài),掌握如何完成網(wǎng)絡(luò)數(shù)據(jù)傳輸。
以上是語言基礎(chǔ)部分語言學(xué)習(xí)的內(nèi)容,下一步還需要掌握數(shù)據(jù)庫編程,web后臺處理,分布式處理等等。
編程要學(xué)習(xí)的第二部分內(nèi)容是數(shù)據(jù)結(jié)構(gòu)和算法。除了要學(xué)習(xí)語言工具,數(shù)據(jù)結(jié)構(gòu)和算法是編程的重要組成部分,比如鏈表的組織結(jié)構(gòu),各種排序算法的時(shí)間復(fù)雜度,空間復(fù)雜度等等。
以上就是學(xué)習(xí)編程語言的兩個(gè)主要部分,我在頭條上會陸續(xù)更新程序設(shè)計(jì)類的專業(yè)文章,關(guān)注我跟我一起學(xué)習(xí)程序設(shè)計(jì)吧!
用STM32只會庫函數(shù),不會用寄存器,有影響嗎?
不會配置STM32的寄存器,而會使用官方的庫函數(shù)是不影響使用STM32單片機(jī)的。STM32單片機(jī)在編程時(shí)即可以使用配置寄存器的方式,又可以使用庫函數(shù)的方式,這兩種方式都是可以操作STM32單片機(jī)的。
熟悉51單片機(jī)的朋友,都知道在編寫程序時(shí),需要配置51單片機(jī)的寄存器。單片機(jī)具有很多的片上資源,而片上資源要正常工作,就需要配置相應(yīng)的寄存器。比如單片機(jī)的定時(shí)器資源,在配置定時(shí)器相關(guān)的寄存器時(shí)就是配置定時(shí)器的工作方式、位數(shù)、是否使用定時(shí)中斷、配置初始值等。
而到了STM32單片機(jī),廠家直接提供了官方庫函數(shù)。這些庫函數(shù)的作用其實(shí)就是將寄存器的配置過程封裝了起來,用戶在編程的時(shí)候不需要直接和寄存器打交道,而只需要調(diào)用相應(yīng)的庫函數(shù)就可以。這樣就可以將配置寄存器的過程分離開來,實(shí)現(xiàn)了硬件層面和軟件層面的簡單分離,其實(shí)就是驅(qū)動(dòng)的作用。
STM32還有HAL庫,即使是使用庫函數(shù)編程,還是建議研究一下寄存器。
所以,不管使用庫函數(shù),還是直接配置寄存器都是可以操作單片機(jī)的。
以上就是這個(gè)問題的回答,感謝留言、評論、轉(zhuǎn)發(fā)。更多電子設(shè)計(jì)、硬件設(shè)計(jì)、單片機(jī)等內(nèi)容請關(guān)注本頭條號:玩轉(zhuǎn)嵌入式。感謝大家。