[好站分享] GitHub 上的瘋狂 C++ 相關資源清單:Awesome-C++
逛國外網站這麼久,很少碰到有資源齊全到讓我倒抽一口涼氣的...這個作者對 C++ 很有愛啊~~
Awesome-C++,是掛在 GitHub 上的一個 C++ 資源清單。收集了 C++ 相關的函式庫、軟體、書籍、文章...還推薦作者覺得也不錯的其它清單。連結如下:
https://github.com/fffaraz/awesome-cpp
一旦點進去,你會被裡面滿滿的超鏈結,把你的腎上腺素濃度打到最高... XD。如果您平常工作與 C++ 相關,您絕對不能錯過這份清單。我簡單列出一下這份清單有什麼:
(以下文長,是寫給英文苦手的讀者看的。英文沒啥問題的朋友,建議直接看原文即可)
一、函式庫與框架
* 標準函式庫(Standard Libraries):
C++ 原生函式庫、POSIX、ISO、GNU 各家出品的標準函式庫都有。
* 程式框架(Frameworks)
「框架」比「函式庫」規格大一點。一般來說,「函式庫」幫你把常用的程式寫好,你只要叫用就好了,是一種幫助你加速完工、但並沒帶來任何新功能的一堆程式碼。「框架」則是替原始 C++ 帶來一些令人驚艷的新功能。不過這種分法,並非絕對的。
* 人工智慧(Artificial Intelligence, AI)相關框架與函式庫
想要催得動這一坨東西,得有點 AI 背景。否則你可能不知道函式庫提供給你「深先搜尋(Depth-first Search)」與「廣先搜尋(Width-first Search)」這些函數怎麼讓那堆冷冰冰的硬體多一點智慧。
* 非同步呼叫所使用的事件佇列(Asynchronous Event Loop)
一般來說,一個程式呼叫另一個程式,「叫人的」得等「被叫的」把事情做完,才能繼續進行下一步。就像一個經理眼睛盯著新手做事、沒辦法回到辦公桌做自己的事一樣,這種模式叫「同步呼叫(Synchronous Call)」。比較好的作法,是你交代完新手該做什麼,就離開回去做自己的事,等新手做完了,再來報告說「我做完了」,這種模式叫「非同步呼叫(Asynchronous Call)」。不過要能做到「非同步」,「叫人者」與「被叫者」之間,得有「事件(Event)」這個機制,讓兩者互相溝通該做的事,以及是否完工。此處提供的,都是讓 C++ 能達成「非同步」機制的函式庫或框架。
* 音效(Audio)相關框架或函式庫
這裡放的,都是讓你的 C++ 能做到讀取音效檔(如:mp3),並用程式碼對該檔進行剪輯、混音...等動作的函式庫或框架。
* 生物(Biology)相關框架或函式庫
這邊的函式庫,可以讓您用 C++ 比對兩條 DNA 序列相似度有多高,或者從一大堆不同樣本的 DNA 中,找出哪條 DNA 與哪條可能有親緣關係...等。
* 命令列(Command Line Interface, CLI)相關框架或函式庫
用這邊的函式庫,可以讓您在命令列跑出一些令人驚艷的效果。如 NCurses 就是一套能在命令列之下,用文字盡量模擬出下拉式選單、按鈕...圖形界面的感覺。
* 壓縮(Compression)相關函式庫
讓您不必瞭解檔案壓縮原理,會叫用相關函數就能做到檔案壓縮。
* 平行處理(Concurrency)相關函式庫
讓 C++ 也能輕易做到同時處理多件事情的函式庫。
* 資料結構相關函式庫(Containers)
提供資料結構內的 B-Tree 與 Hashmaps 等架構,讓 C++ 輕鬆取用。
* 加密(Cryptography)相關函式庫
提供加密解密相關函數。
* 資料庫(Database)相關函式庫
讓 C++ 可以用幾道命令,輕鬆接取 MySQL、MongoDB...等知名資料庫內的資料。
* 除錯、測試、效能(Debug)相關函式庫
雖然原文只用了「Debug」這樣的簡單字眼,但這一區的函式庫包含「單元測試(Unit Test)」、「效能測試(Benchmark)」、「記憶體用量追蹤(Memory Tracking)」等功能的函數。讓您的程式在還沒跑之前,就接受嚴格檢驗,降低發生錯誤的機會。
* 遊戲引擎(Game Engine)
提供一些函數,讓您輕鬆讀入 3D 建模軟體(如:Maya, 3D Studio...)做出來的模型與動畫。並在程式內特定事件(如:碰撞)發生時播放。也提供打光(Shading)、物理函數(如:彈跳、碰撞)...等方便的程式供您取用。這些東西讓您在寫遊戲時,能以更快的效率產出結果。
* 圖形界面(Graphical User Interface, GUI)
讓您用 C++ 建立漂亮的視窗、對話框、核取框、下拉式功能表...等圖形界面。
* 圖形(Graphics)相關函式庫
這部分多與遊戲引擎搭配,提供 2D 圖形處理或 3D 光跡追蹤(Rendering)等「外觀美化」的函數。讓您的遊戲角色或場景,看起來更栩栩如生。
* 影像處理(Image Processing)相關函式庫
包含讀入/繪出各式圖檔(PNG、JPG、GIF...)、光學字元辨識、電腦視覺、讀入/播放各式影片(MP4...)等函數。
* 國際化(Internationalization)相關函式庫
讓您用 C++ 寫出來的程式,可以輕易支援各國語言(當然,各國語言要事先請翻譯社先翻好,這邊只是提供語系切換的機制)。
* 行程間通訊(Inter-Process Communication, IPC)相關函式庫
兩個跑起來的獨立程式(如:兩個執行檔)想在執行過程中交換資料,稱為「行程間通訊」,簡稱 IPC。IPC 雖然不至於難如登天,不過要做到,手續還是很瑣碎的。這邊的函式庫提供好用函數,讓兩個行程交換資料時,變得比較容易。
* JSON 支援相關函式庫
JSON 原文是 JavaScript Object Notation。是一種用「純文字」來表示「資料」的方法。如一筆「李大華、35 歲、手機 0937555666」的資料,用 JSON 表示是這樣的:
[
Name: "李大華",
Age: 35,
Mobile: "0937555666"
]
之後可以讓這樣的資料,流通於瀏覽器與伺服器之間。而 JSON 函式庫,可以快速幫您分析 JSON 表示的資料,將它還原成您要的格式。
* 日誌(Logging)支援函式庫
日誌在「系統稽核」中,是很重要的功能。系統得把「什麼人、等級多高、做了什麼事、何時做的、對哪部分做的、從哪個 IP 過來...」忠實記錄下來。萬一系統出事了,我們就能追查可能是誰搞的。類似「監視器」的功能。這部分的函式庫,可以讓 C++ 輕易做到「日誌」功能,您不用傷腦筋日誌功能該怎麼寫,它已經幫您寫好了。您只要會用就行。
* 機器學習(Machine Learning)相關函式庫
提供如「類神經網路」、「電腦視覺」等進階函式庫,讓您的 C++ 程式有少量人類視覺與思考能力(真的很少量,請不用有太高期待)。
* 數學(Math)相關函式庫
一些線性代數、矩陣運算...等相關數學函數。
* 多媒體(Multimedia)相關函式庫
如:影音串流...等相關函數。
* 網路(Networking)相關函數
提供各種低階網路協定相關函數。如:TCP/IP、HTTP、點對點傳輸、非同步通訊、以及一些與 Facebook 橋接的相關函數。
* 物理模擬(Physics)相關函數
這部分也可以大量用於遊戲程式設計。主要提供一些函數,用來模擬自然界各種物理現象。如水流、風吹、碰撞、彈跳...等。
* 機器人控制(Robotics)相關函數
一堆方便你控制或模擬機器人行為的函數。
* 科學運算(Scientific Computing)
一些在科學上比較用得著的數學運算。如工程數學、傅立葉分析...等。
* 腳本語言控制(Scripting)
包含一些能讓 C++ 與各種腳本語言(JavaScript、PHP、Perl...)橋接的函數。
* 序列化控制(Serialization)
首先解釋一下何謂序列化。序列化可以把程式執行到一半的樣子,如數保存於硬碟中,甚至於可以關機。之後可以把序列化的資料「反序列化」,將它「解凍」還原至記憶體繼續跑,就像當初跑到一半被「冷凍」當下再往下執行一樣。這邊提供許多 C++ 序列化的函式庫。
* 影片處理(Video)
可以讀入/播放各種影片檔的函式庫。
* 虛擬機(Virtual Machines)
這邊提供一些用 C++ 寫出來的「輕量級」虛擬機。所謂虛擬機,是用軟體模擬出硬碟、處理器、記憶體、螢幕,工程師可以在虛擬機內安裝另一個作業系統,就好像安裝作業系統至真實機器一樣。
* 網頁應用軟體框架(Web Application Framework)
集合了一些用 C++ 寫出來的 WWW 伺服器、或開發網頁時用得上的函式庫等。
* XML
如果你希望教會你的 C++ 程式「讀懂」一個 XML 檔在講什麼,這邊提供了一堆 XML 解析器(XML Parser),方便您分析從遠方伺服器傳來的 XML 檔到底想表達什麼樣的資料。
* 其它(Miscellaneous)
一些無法分類的東西,通通塞在這裡。大部分是一些小型的函式庫或 C++ 與其它語言的橋接軟體。
二、C++ 相關軟體
* 編譯器(Compiler)
各類把 C++ 原始碼編成 0 與 1 機械碼的軟體。
* 線上編譯器(Online Compiler)
懶得安裝編譯器的話,現在有一堆線上的編譯器。你上傳原始碼,它會編成機械碼後,丟還個執行檔給你下載。
* 除錯器(Debugger)
一些有名的 C++ 除錯器。當你的程式無法執行時,可以靠它找出到底錯在哪裡。
* 整合式開發環境(Integrated Development Environment, IDE)
IDE 就是把文字編輯器(Editor)、編譯器(Compiler)、除錯器(Debugger)...等軟體整合成一體的軟體。您可以不離開該環境,就能寫碼、編譯、除錯、執行...。
* 軟體建構系統(Build Systems)
簡單說,就是把一些瑣碎動作事先安排好、可以在程式碼修改後,下達一條指令(如:「建構!」),就可全自動一條鞭地從編譯、測試、備份、安裝...一口氣完成的系統。
* 原始碼靜態分析軟體(Static Code Analysis)
丟入原始碼,可以幫你找出哪段程式可能發生錯誤,或者可能造成效能低下。也能找出完全沒被叫用到的原始碼,提醒您刪除。甚至於可以把您的程式碼重排成符合特定格式,統一多人寫碼風格時很有用。
三、其它資源
* API Design 文件
* 有用文章(Articles)
* 推薦書籍(Books)
* 寫碼風格(Coding Style)
* 演講(Talks)
* 影片教學(Videos)
* 有用網站(Web Sites)
* 有用部落格(Weblogs)
* 其它 Awesome C++ 姊妹作(Other Awesome Projects)
四、其它也很棒的清單(Other Awesome Lists)
能看到這行字的,給您拍拍手!辛苦了!希望今天分享的內容您會喜歡!也請您不吝按讚鼓勵,或分享給您 Facebook 的親朋好友!
同時也有4部Youtube影片,追蹤數超過25萬的網紅紙片模型,也在其Youtube影片中提到,歡迎來到每月一次,專門介紹 Minecraft 模組的《紙片模坊》。上個月咱們把模組的數量拉到了 35 個,本來我有點擔心會不會太多,但沒想到大家其實很能接受,甚至覺得更好。 所以這個月,我大膽再擴增到了 50 個,但妄想很美好,現實卻是殘酷的。我發現很多模組都是空有內容,但實際上就不怎麼好玩。尤...
api怎麼寫 在 91 敏捷開發之路 Facebook 八卦
最近看 legacy code 比較進階版且很多人不覺得/不知道有問題的問題:
1. 無謂切分出很多 projects/packages;
2. 多了很多不必要的繼承關係;
3. 某些 class 不該有方法;
常見的進階 code smell:
1. Primitive Obsession
2. Data Clump
3. Feature Envy
上列這些問題的重點在於,大部分的工程師都是不覺得有問題。
要設計出「簡單」、「好用」的軟體架構跟 API, 這些都是核心基本功啊...
另一個比較特別的問題是「不必要的中間層」,通常都會得到:因為以前的 code 都這樣寫,所以要一致性。
但為什麼這樣寫,有什麼好處,不這樣寫有什麼問題,還可以怎麼寫更簡單?通常都得不到答案。
api怎麼寫 在 91 敏捷開發之路 Facebook 八卦
最近看 legacy code 比較進階版且很多人不覺得/不知道有問題的問題:
1. 無謂切分出很多 projects/packages;
2. 多了很多不必要的繼承關係;
3. 某些 class 不該有方法;
常見的進階 code smell:
1. Primitive Obsession
2. Data Clump
3. Feature Envy
上列這些問題的重點在於,大部分的工程師都是不覺得有問題。
要設計出「簡單」、「好用」的軟體架構跟 API, 這些都是核心基本功啊...
另一個比較特別的問題是「不必要的中間層」,通常都會得到:因為以前的 code 都這樣寫,所以要一致性。
但為什麼這樣寫,有什麼好處,不這樣寫有什麼問題,還可以怎麼寫更簡單?通常都得不到答案。
api怎麼寫 在 紙片模型 Youtube 的評價
歡迎來到每月一次,專門介紹 Minecraft 模組的《紙片模坊》。上個月咱們把模組的數量拉到了 35 個,本來我有點擔心會不會太多,但沒想到大家其實很能接受,甚至覺得更好。
所以這個月,我大膽再擴增到了 50 個,但妄想很美好,現實卻是殘酷的。我發現很多模組都是空有內容,但實際上就不怎麼好玩。尤其那些新增生態域或是怪物的,好像很多東西、要研究很久,但真的玩起來,非常無聊(就Boring內),最後就被我篩掉了。
另外我也花了一些時間請人幫我外包寫稿,甚至是解決模組的問題。結果發現效果奇差無比,根本連用都不能用,最後只好我自己來。
總之,這次內容就和上次說的一樣,《紙片模坊》盡量包山包海,目標成為每個月一次的麥塊模組教科書。讓我們開始吧。
00:00 Intro
00:50 Replay Mod for Forge 重播模組
01:33 Waystones 傳送石碑
01:56 WAIG: Where Am I Going 方位羅盤
02:31 Crosshair Mod 更好的準心
03:03 Mini Effects 迷你效果
03:25 Visual Workbench 可視化工作台
03:56 CraftingCraft 合成工藝
04:40 Crafting Tweaks 工藝調整
05:01 EasyPaths 簡易路徑
05:33 GravelMiner 礫石礦工
06:06 Rebark 貼回樹皮
06:37 MoreMcmeta 更多的位元資料
07:13 Simply Seasons 簡單的季節
07:40 Traveler's Titles 旅行者的標題
08:20 Pierce Arrow 怪物中箭
08:54 Advancement Plaques 更好的成就顯示
09:26 Sound Physics 聲音物理
10:00 Time Sync+ 時間同步
10:33 FreeLook 自由視角
10:57 Boss Music 戰鬥音樂
11:28 Villainous Summons & Defenses 防衛弓箭塔
12:08 Piglin Expansion 豬靈擴張
12:44 Caves & Cliffs Part 2 Mod 洞穴與懸崖第二部分
13:33 Zonko's Monsters 巫師的怪物
14:13 Farsighted 更遠的怪物視野
14:47 More Axolotl Variants 更多蠑螈
15:24 Husbandry 畜牧業
16:06 Winged Beacons 飛行信標
16:35 Speed Carts 速度礦車
17:17 Boats & Beeps 動力船
17:44 Horticulture 園藝
18:28 Better Beekeeping 更好的養蜂
19:17 Piscary 魚刺
20:16 Macaw's Lights & Lamps 金剛鸚鵡的燈
20:49 Additional Lanterns 額外的燈籠
21:13 Exline's Furniture 艾斯林的家具
21:37 Walkways 手扶梯
22:02 Bee Buddies 蜜蜂夥伴
22:28 Lovely Snails 可愛的蝸牛
22:56 KAIMyEntity-Reborn 自定義模型
23:33 Outro
============================
詳細下載連結、版本、類別,在這裡:https://bit.ly/3xOsAcr
(可在表單下方的分頁切換)
============================
※有想推薦的模組嗎?歡迎透過這份表單進行推薦!
https://forms.gle/JNi4sN4HCXZVuQHc9
—
Mod Loader:
Forge -
http://bit.ly/Paper-Forge
Fabric -
http://bit.ly/Paper-Fabric
Fabric API -
http://bit.ly/Fabric-API
—
RPMTW Update Mod 自動中文化 -
http://bit.ly/Paper-RPMTW
—
Instagram: http://bit.ly/Paper_IG
Facebook: http://bit.ly/Paper_FB
Discord: http://bit.ly/PaperDiscord
—
錄影程式:Bandicam
聲音處理:Audacity
後製軟體:Adobe Premiere Pro cc
—
如果您有適合本頻道的合作提案,歡迎寄信至:mlz85613@gmail.com。
api怎麼寫 在 Untyped 對啊我是工程師 Youtube 的評價
Coding vs Programming 軟體工程師在 編碼 or 編程? | 5 Differences between Coding and Programming【電腦說人話】
-
軟體工程師到底在幹嘛?內行外行怎麼說?
Coding? Programming? 程式設計?編碼編程?想到電腦科學就會想到這些詞,但是它們到底是什麼意思?差別又在哪呢?
讓凱心琳告訴你這兩個詞的5大層面的差別!
(Tools 使用工具, Expertise 專業知識, Approach 方法途徑, Outcome 成果產出, Learning 學習過程)
在這個人手好幾台電腦的時代,實在是有好多電腦的詞聽不懂。Cookie 不再是好吃的餅乾,Class不再是學生上的課,Bug 因為非常不一樣的原因而令人討厭。Coding, Programming 兩個詞表面上好像一樣,但是實際上卻截然不同。好多詞不懂~沒關係!讓 Untyped 為你解惑!
【電腦說人話】這個系列是希望透過口語化的方式,透過生活中的例子去介紹一些看似艱澀像外星語但實際上卻不難懂的電腦科學專有名詞。希望能讓曾經對這些詞彙充滿畏懼與疑惑的妳,能夠不再害怕,勇敢學習Computer Science!
【㊫ 電腦科學/軟體工程 學習資源 📖】
全端工程師密技 Full Stack Eng - Career Path (Codecademy)
https://bit.ly/3niTwLN
前端工程師密技 Front End Eng - Career Path (Codecademy)
https://bit.ly/32K1eql
用Scala學習函式程式設計
https://bit.ly/2IF0Thv
Scala 函数式程式設計原理
https://bit.ly/3kBQXTb
平行程式設計
https://bit.ly/3pCeaZf
Android 應用程式開發 專項課程
https://bit.ly/3lGCUwW
普林斯頓大學 電腦科學 演算法 基礎理論
https://bit.ly/3nxomAh
Go 語言學起來
https://bit.ly/35AWhlv
Parallel, Concurrent, and Distributed Programming in Java 專項課程
https://bit.ly/2IGnlH4
Java 軟體工程基礎課程
https://bit.ly/3fa4gJi
全端開發 跨平台手機app 開發 完整課程
https://bit.ly/2UCGWum
#程式設計 #Programming #電腦說人話
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
-
歡迎留言告訴我你的想法,或是你想認識的程式語言唷!
每(隔週)週四晚上9點更新,請記得開啟YouTube🔔通知!
-
【相關連結】
Coding vs Programming
[https://www.codementor.io/@edwardbailey/coding-vs-programming-what-s-the-difference-yr0aeug9o]
[https://www.educba.com/coding-vs-programming/]
[https://www.goodcore.co.uk/blog/coding-vs-programming/]
【愛屋及烏】
Facebook 臉書粉專 👉 [https://www.facebook.com/untyped/]
Instagram 👉 [[https://www.instagram.com/untypedcoding/]
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的女工程師。
-
This video contains affiliate links, which means that if you click on one of the product links, I'll receive a small commission.
圖片影片音效:[giphy.com] [pngwave.com][freesound.org][soundbible.org]
【Disclaimer 聲明】
Some links are affiliated.
上面有些連結是回饋連結,如果你透過這些連結購買商品,我可以得到一些小獎勵,但不會影響到你購買的價格,甚至會是更低的價格!謝謝你的支持💕
api怎麼寫 在 Untyped 對啊我是工程師 Youtube 的評價
API? IPA? 應用程式介面是什麼? API種類介紹 | What is API? REST? SOAP? 【電腦說人話】
-
API、IPA 傻傻分不清楚?某個app又發布了新的API?你知道應用程式之間是怎麼溝通的嗎?API好多種到底怎麼分?
公司的工程師同事又在討論新的API,啥?API是什麼?查了一下發現API的中文是應用程式介面。字都會唸但就是不懂。相信不論你有沒有接觸過Computer Science 電腦科學,可能都有聽過API這個詞。
凱心琳我曾經也被API這個詞搞得一頭霧水,大家都說它很重要它很棒,但是很少有人講得清楚他到底是什麼做什麼用的。一下REST一下SOAP的,到底在講什麼?甚至很多寫過API的工程師也無法解釋API的本質,以為所有的API都是同一種形式。這次要透過一些生活化的例子,介紹鼎鼎大名的API。並且分享Open API, Internal API, Partner API, Web Service, REST, SOAP 這些東西到底是什麼。
【電腦說人話】這個系列是希望透過口語化的方式,透過生活中的例子去介紹一些看似艱澀像外星語但實際上卻不難懂的電腦科學專有名詞。希望能讓曾經對這些詞彙充滿畏懼與疑惑的妳,能夠不再害怕,勇敢學習Computer Science!
#API #REST #電腦說人話
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
-
歡迎留言告訴我你的想法,或是你想認識的程式語言唷!
每(隔週)週四晚上9點更新,請記得開啟YouTube🔔通知!
-
【相關連結】
*What is an API? In English, please.*
[https://www.freecodecamp.org/news/what-is-an-api-in-english-please-b880a3214a82/]
[https://www.howtogeek.com/343877/what-is-an-api/]
[https://apifriends.com/api-management/what-is-an-api/]
*Types of APIs*
[https://rapidapi.com/blog/types-of-apis/]
[https://stoplight.io/api-types/]
[https://www.cevgroup.org/what-is-api/]
【What I used to make this video】
個人電腦:Apple MacBook Pro [https://amzn.to/2HKgI2T]
拍攝錄音錄影: iPhone X [https://amzn.to/3c0s6Fu]
相機: Canon 80D [https://amzn.to/2VVmiYz]
錄音: Rode [https://amzn.to/3aqnzL2]
鍵盤: Logitech MX Keys Wireless Keyboard [https://amzn.to/3awqi5L]
【愛屋及烏】
Facebook 臉書粉專 👉 [https://www.facebook.com/untyped/]
Instagram 👉 [https://www.instagram.com/untypedcoding/]
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的女工程師。
-
This video contains affiliate links, which means that if you click on one of the product links, I'll receive a small commission.
圖片影片音效:[giphy.com] [pngwave.com][freesound.org]
api怎麼寫 在 【10.上傳檔案API】ASP.NET Core Web API 入門教學(10_2) 的八卦
NET Core Web API 入門教學(10_2) - 上傳檔案與簡單傳值. 280 views280 views. Jul 24 ... ... <看更多>
api怎麼寫 在 #請益如何撰寫api - 軟體工程師板 | Dcard 的八卦
目前專題需要用到各位高手可以推薦如何撰寫api嗎,小弟只是個初學者知道api就好像服務生一樣你點餐然後藉由服務生給到後端那寫程式會像加入引入檔那樣 ... ... <看更多>