7 โครงการ C ที่น่าตื่นเต้นบน GitHub สำหรับโปรแกรมเมอร์ [2022]
เผยแพร่แล้ว: 2021-01-01ว่ากันว่าการเขียนโปรแกรมไม่ได้เกี่ยวกับสิ่งที่คุณรู้ แต่เกี่ยวกับสิ่งที่คุณสามารถเข้าใจได้ ในความกระตือรือร้นที่จะสำรวจโลกของการเขียนโปรแกรมและเรียนรู้ทุกสิ่งที่จำเป็นต้องรู้เกี่ยวกับศิลปะ โปรแกรมเมอร์มักจะลืมไปว่าความสามารถในการมองเห็นวิธีแก้ไขปัญหาคือสิ่งที่ทำให้คุณเป็นนักพัฒนาที่ยอดเยี่ยม
ด้วยภูมิทัศน์ทางเทคโนโลยีที่เปลี่ยนแปลงตลอดเวลา การแก้ปัญหายังคงเป็นทักษะเดียวที่ช่วยให้คุณนำทางผ่านความก้าวหน้าและในกระบวนการพัฒนา
วิธีหนึ่งในการเสริมความแข็งแกร่งให้กับแกนกลางของคุณในฐานะโปรแกรมเมอร์และสร้างทักษะการแก้ปัญหาคือการเริ่มต้นด้วยภาษาซี ซึ่งมักเรียกกันว่าแม่ของภาษาโปรแกรมทั้งหมด แม้จะผ่านไป 50 ปีนับตั้งแต่เปิดตัว C ก็มีการใช้งานอย่างแพร่หลายในเกือบทุกอุตสาหกรรมและได้รับการยกย่องว่าเป็นภาษาที่เหมาะสมที่สุดสำหรับผู้เริ่มต้น สิ่งนี้ทำให้เกิดคำถามจริงๆ: C คืออะไรและทำไมมันถึงยังเป็นที่นิยม?
สารบัญ
ทำไมการเขียนโปรแกรม C ยังคงโดดเด่น?
นักวิทยาศาสตร์คอมพิวเตอร์ชาวอเมริกัน Dennis Ritchie ได้แนะนำ C ในปี 1972 เป็นภาษาโปรแกรมแบบมีขั้นตอนทั่วไปซึ่งออกแบบมาเพื่อเขียนระบบปฏิบัติการ มันกลายเป็นที่รู้จักอย่างรวดเร็วว่าเป็นภาษาที่ทรงพลังและแข็งแกร่งในด้านการพัฒนาซอฟต์แวร์ มากจนชื่อที่โด่งดังที่สุดบางชื่อในปัจจุบันมีความเกี่ยวข้องกับ C
Windows ของ Microsoft, OS X ของ Apple และ Symbian ได้รับการพัฒนาโดยใช้ C นอกจากนี้ Chromium ของ Google, MySQL, Oracle และแอปพลิเคชันส่วนใหญ่ของ Adobe ยังได้รับการพัฒนาโดยใช้ภาษาการเขียนโปรแกรม C นอกจากนี้ยังมีบทบาทสำคัญในชีวิตประจำวันของเราด้วยว่าอุปกรณ์อัจฉริยะส่วนใหญ่ที่เราใช้อยู่ทุกวันนี้ขับเคลื่อนด้วยเทคโนโลยีที่ตั้งโปรแกรมโดยใช้ C
แม้ว่าจะมีสาเหตุหลายประการที่ทำให้ C ยังคงเป็นแกนหลักของภาษาการเขียนโปรแกรมทั้งหมดในปัจจุบันและมียูทิลิตี้ที่ครอบคลุม ลองดูที่ด้านบน 3:

1. ความยืดหยุ่น
สาเหตุหลักประการหนึ่งที่ทำให้ C ใช้งานได้อย่างกว้างขวางเนื่องจากความยืดหยุ่นที่ราบรื่นในการจัดการหน่วยความจำ โปรแกรมเมอร์สามารถควบคุมวิธีจัดสรรและจัดสรรหน่วยความจำใหม่ได้อย่างเต็มที่ ซึ่งจะช่วยเพิ่มประสิทธิภาพสูงสุดและมีส่วนช่วยในการเพิ่มประสิทธิภาพให้ดียิ่งขึ้น
2. การพกพา
C ยังคงเป็นภาษาแอสเซมบลีแบบพกพาสูง มีไลบรารี่ที่หลากหลายซึ่งช่วยเพิ่มประสิทธิภาพการทำงานและการรวมเข้ากับสถาปัตยกรรมโปรเซสเซอร์ที่มีอยู่เกือบทั้งหมด ภาษาโปรแกรมอื่น ๆ อีกจำนวนหนึ่งมีคอมไพเลอร์ ไลบรารี และตัวแปลเป็นภาษา C เป็นหลัก ซึ่งช่วยให้คำนวณได้เร็วขึ้นและเข้าถึงได้ง่าย
3. ความเรียบง่าย
C เป็นภาษาระดับกลางซึ่งโดยพื้นฐานแล้วหมายถึงแชร์คุณลักษณะของภาษาระดับสูงและระดับต่ำ ทำให้ง่ายต่อการเข้าใจและใช้งานง่าย นอกจากนี้ เนื่องจากเป็นภาษาการเขียนโปรแกรมที่มีโครงสร้าง ทำให้ผู้ใช้สามารถแบ่งโค้ดเป็นส่วนย่อยที่เล็กกว่าและอ่านง่ายกว่า
ในบทความนี้ เราจะพูดถึงโปรเจ็กต์ภาษา C ที่น่าสนใจที่คุณสามารถพบได้ใน GitHub เราหวังว่าแนวคิดโครงการเหล่านี้จะช่วยคุณพัฒนาทักษะการแก้ปัญหา ปรับปรุงฐานความรู้ และเพิ่มประสบการณ์การเรียนรู้ของคุณ
ลงทะเบียนเรียน หลักสูตรการพัฒนาซอฟต์แวร์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
โครงการ C ยอดนิยมใน GitHub
1. ระบบบริหารจัดการพนักงาน
ดังที่เห็นได้ชัดจากชื่อ ระบบการจัดการพนักงาน ได้รับการออกแบบมาเพื่อเก็บบันทึกของพนักงานที่ทำงานในบริษัท วัตถุประสงค์ของโปรแกรม EMS คือการปรับปรุงประสิทธิภาพในการจัดการโดยจัดให้มีกรอบการทำงานที่ครอบคลุมเพื่อลดความซับซ้อนของกระบวนการเก็บบันทึก
รายละเอียดทั้งหมด ทั้งส่วนบุคคลหรือทางวิชาชีพ เกี่ยวกับพนักงานจะได้รับการเก็บรักษาไว้ในระบบการทำงานที่มีจุดมุ่งหมายเพื่อเอาชนะปัญหาที่พบโดยระบบการเก็บบันทึกด้วยตนเอง ฐานข้อมูลที่ออกแบบมาอย่างดีและใช้งานได้จริงของโปรแกรมจัดเก็บข้อมูลในลักษณะที่ข้อมูลสามารถเข้าถึงได้ง่ายและแก้ไขได้
ระบบการจัดการพนักงานมีความปลอดภัยและเชื่อถือได้ มีการพิมพ์รหัสผ่านที่มองไม่เห็นและหน้าต่างเข้าสู่ระบบเฉพาะ มีการป้องกันด้วยรหัสผ่านและเข้ารหัสเป็นไฟล์ไบนารี นอกจากนี้ ฐานข้อมูลสามารถปรับเปลี่ยนได้ตามความต้องการของผู้ใช้ เช่น สามารถเพิ่ม ลบ หรือแทนที่ระเบียนได้อย่างง่ายดาย
2. ล้างข้อมูลในไดรฟ์
Nuke เป็นโปรแกรมที่อนุญาตให้ผู้ใช้ล้างเนื้อหาทั้งหมดของไดรฟ์ที่ระบุใน ปัจจุบัน เข้ากันได้กับ Linux เท่านั้น เมื่อล้างเนื้อหาออกแล้ว จะเขียนไบต์แบบสุ่มเพื่อให้แน่ใจว่าข้อมูลจะถูกทำลายโดยสมบูรณ์
การทำงานของรหัส:
การใช้งาน: nuke <drive 1> [drive 2] …
ทำลายเนื้อหาของไดรฟ์/ไดรฟ์
ตัวเลือก:
-z, -0, –ศูนย์
-n, –num-ตัวแทน
-Y
-h, –ช่วย
-V, –เวอร์ชั่น
ตัวอย่าง:
นิวเคลียร์ /dev/sdb
นิวเคลียร์ /dev/sdb /dev/sdc
nuke -z /dev/sdb
nuke -n 2 /dev/sdb
Nuke ต้องการให้ระบบมีสิทธิ์ใช้งานรูทเพื่อให้โปรแกรมทำงาน นอกจากนั้น จำเป็นต้องมี GCC, GNU Make และ PyQt5
ลองด้วย: แนวคิดและหัวข้อโปรเจ็กต์ Java

3. ระบบโหวตแบบมินิ
ด้วย โปรแกรม Mini Voting คุณมีระบบที่อนุญาตให้คนกลุ่มเล็กหรือกลุ่มใหญ่ลงคะแนนเสียงในขณะที่โปรแกรมติดตามการนับ Mini Voting System ค่อนข้างยืดหยุ่นโดยให้ผู้ใช้ทำการลบอย่างผิดกฎหมายได้หากจำเป็น ทุกกระบวนการลงคะแนนจะถูกบันทึกตามการประกาศผล
แม้ว่าจะสามารถรันบนคอมไพเลอร์ C ได้ แต่แนะนำให้ใช้ Turbo C++
การทำงานของรหัส:
ไฟล์ส่วนหัวที่มีชื่อ ELECTION.H
โครงสร้าง CAND: ใช้: ชื่อร้านและจำนวนโหวต
ฟังก์ชั่น:
candname: ใช้: เก็บข้อมูลผู้สมัครในโครงสร้างเช่นเดียวกับ file
flcreate: ใช้: สร้าง 'นับ' ไม่ใช่ ของไฟล์ที่ขึ้นต้นด้วย '0'
isSpecial: ใช้: ตรวจหา PRN ว่างจากไฟล์
(หมายเหตุ: PRN เป็นม้วนที่ไม่ซ้ำกันซึ่งไม่มีให้นักเรียนแต่ละคนในชั้นเรียน)
isAuthentic: ใช้: PRN Authentication
delFromfile: ใช้: ลบการโหวตโดย PRN จากไฟล์ที่กำหนด
ผู้ดูแลระบบ ใช้: 1. การเริ่มต้นการเลือกตั้ง 2. การเลือกตั้งอย่างต่อเนื่อง 3. การลบการลงคะแนนที่ผิดกฎหมาย 4. การประกาศผล
stu Use: ฟังก์ชันทั้งหมดที่สิ้นสุดของผู้ลงคะแนน
แผงธุรการ
ชื่อผู้ใช้: “ผู้ดูแลระบบ” รหัสผ่าน: “SR@3111”
4. แอพปฏิทิน
แอ ปปฏิทิน เป็นโครงการง่ายๆ อีกโครงการหนึ่งที่สามารถพัฒนาได้โดยใช้ภาษาซี ซึ่งสามารถใช้เป็นปฏิทินระหว่างเดินทางเพื่อใช้งานฟังก์ชันต่างๆ
คุณสามารถค้นหาวันใดก็ได้โดยป้อนวันที่ของวัน ตัวอย่างเช่น หากคุณต้องการทราบว่าวันที่ 25 ธันวาคม 2022 ตรงกับวันใด คุณต้องป้อนวัน (25) เดือน (ธันวาคม) และปี (2022) ผลลัพธ์ของโปรแกรมจะเป็นวันศุกร์
ผู้ใช้ยังสามารถเพิ่มบันทึกสำหรับวันใดวันหนึ่งเพื่อดูในภายหลัง นอกจากนี้ เมื่อใช้แอพปฏิทิน ผู้ใช้สามารถแสดงปฏิทินของเดือนที่ต้องการเข้าถึงได้
อ่าน: แนวคิดและหัวข้อโครงการ Python
5. ชุดการสร้าง 3 มิติ
Blender เป็นชุดเครื่องมือสร้าง 3D แบบโอเพ่นซอร์สข้ามแพลตฟอร์มฟรีที่เข้ากันได้กับ Windows, Macintosh และ Linux มันมีไปป์ไลน์ที่เป็นหนึ่งเดียวสำหรับวัตถุประสงค์ 3D ที่หลากหลาย รวมถึง VFX, การแกะสลัก, การจำลอง, การติดตามการเคลื่อนไหว, การตัดต่อวิดีโอและแอนิเมชั่น เป็นต้น การสร้างแบบจำลอง การเรนเดอร์ การสร้างเกม และการสร้างเกมสามารถทำได้โดยใช้โปรแกรมนี้
ช่วยให้คุณสามารถเขียนเครื่องมือเฉพาะทางที่ปรับแต่งได้ตามความต้องการของคุณ และออกแบบมาเพื่อให้บริการนักพัฒนา ผู้เขียนสคริปต์ นักออกแบบ และนักแปล
ชุดการสร้าง 3D นั้นเขียนโดยใช้ภาษา C เป็นหลัก แต่ก็มีร่องรอยของ C++, Python และภาษาอื่นๆ อีกสองสามภาษา
6. ระบุมัลแวร์
หากคุณเป็นนักวิจัยมัลแวร์หรืองานของคุณเกี่ยวข้องกับการระบุมัลแวร์ YARA อาจให้บริการคุณเป็นอย่างดี เป็นโปรแกรมง่าย ๆ ที่สามารถทำงานที่ทรงพลังและซับซ้อนได้ ด้วย YARA คุณสามารถระบุมัลแวร์แล้วจำแนกตามรูปแบบที่แสดง - ข้อความหรือไบนารี นักวิจัยมัลแวร์สามารถสร้างคำอธิบายสำหรับมัลแวร์แต่ละตัวที่พวกเขาระบุโดยใช้สตริง จากนั้นใช้นิพจน์บูลีนเพื่อตรวจสอบตรรกะของมัน
ตัวอย่างเช่น ตามโค้ดด้านล่าง เมื่อใดก็ตามที่โปรแกรมพบคำอธิบาย (เช่น สามสตริงที่ระบุ) โปรแกรมจะรายงานว่าเป็น silent_banker
กฎ silent_banker : นายธนาคาร
{
เมตา:
คำอธิบาย = “นี่เป็นเพียงตัวอย่าง”
Threat_level = 3
in_the_wild = จริง
สตริง:
$a = {6A 40 68 00 30 00 00 6A 14 8D 91}
$b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
$c = “UVODFRYSIHLNWPEJXQZAKCBGMT”
สภาพ:
$a หรือ $b หรือ $c
}
ด้วยวิธีนี้ คุณสามารถสร้างกฎจำนวนเท่าใดก็ได้ที่มีตัวดำเนินการพิเศษ สตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ ฯลฯ นอกจากนี้ยังช่วยให้คุณทดสอบและระบุผลบวกที่ผิดพลาด
YARA สามารถติดตั้งและรันบน Windows, Linux และ Mac OS X ได้
7. เข้าถึงโครงสร้างข้อมูล
Redis เป็นฐานข้อมูลในหน่วยความจำแบบโอเพ่นซอร์ส ที่รู้จักกันทั่วไปในชื่อ Data Structures Server ที่ให้คุณเข้าถึงโครงสร้างข้อมูลที่เปลี่ยนแปลงได้เพียงแค่ป้อนชุดคำสั่ง อนุญาตให้หลายกระบวนการแชร์โครงสร้างข้อมูลที่มีอยู่และทำการแก้ไข
Redis นั้นรวดเร็วและหลากหลายเพราะเก็บโครงสร้างข้อมูลไว้บนดิสก์มากกว่าหน่วยความจำของเซิร์ฟเวอร์ นอกจากนี้ เนื่องจากเป็นโครงสร้างข้อมูล การจัดสรรหน่วยความจำภายใน Redis จึงมีประสิทธิภาพมากกว่า นอกจากนี้ยังอนุญาตให้จำลองแบบ คลัสเตอร์ และคุณลักษณะอื่น ๆ ที่เกี่ยวข้องกับฐานข้อมูล
คำสั่งที่เป็นปัญหานั้นง่ายและจดจำได้ง่าย ตัวอย่างเช่น คำสั่งในการคอมไพล์คือ:
% ทำ
ไบนารี Redis 32 บิตสามารถเรียกใช้ได้โดยใช้:
% สร้าง 32bit
หลังจากอัปเดตแหล่งที่มา หากคุณต้องการลบทุกอย่าง (jemalloc, lua, hiredis, linenoise) และเริ่มต้นใหม่ทั้งหมด ให้ใช้:
ทำให้ distclean

มีคำสั่งดังกล่าวมากมายที่ Redis นำไปใช้ได้
Redis ได้รับการออกแบบมาให้ทำงานบน Linux, OSX และ *BSD แต่สามารถใช้กับ Solaris ได้เช่นกัน
บทสรุป
ในฐานะที่เป็นโฮสต์ของชุมชนการพัฒนาซอฟต์แวร์ที่ใหญ่ที่สุดในโลก GitHub ได้สร้างที่เก็บโครงการที่กว้างขวางจากโปรแกรมเมอร์ที่ตรวจสอบและประเมินรหัสของกันและกันเป็นประจำ และเนื่องจากแพลตฟอร์มรองรับภาษาการเขียนโปรแกรมทั้งหมด จึงมี C . มากมาย แนวคิดโครงการใน GitHub เพื่อให้ทุกคนได้รับแรงบันดาลใจจาก
ความรับผิดชอบเป็นหน้าที่ของคุณในฐานะนักพัฒนา ในการคิดนอกกรอบ คิดหาวิธีแก้ปัญหาที่ชาญฉลาดโดยใช้ทรัพยากรที่มีอยู่ และมีส่วนสนับสนุนต่ออนาคตของซอฟต์แวร์
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมและต้องการคำปรึกษาจากผู้เชี่ยวชาญในอุตสาหกรรม โปรดดูที่ upGrad & IIIT Banglore's Executive PG Program Full-Stack Software Development
