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

เตรียมความพร้อมสู่อาชีพแห่งอนาคต

สมัครเลยตอนนี้สำหรับปริญญาโทด้านวิศวกรรมซอฟต์แวร์