จะเป็นโปรแกรมเมอร์ที่เป็นระเบียบมากขึ้นได้อย่างไร? [ปิด]


9

ฉันเป็นโปรแกรมเมอร์ที่สามารถเขียนโค้ดได้ แต่ฉันพบว่าฉันสามารถทำสิ่งต่าง ๆ ได้ แต่ไม่สามารถทำได้ดีหรือเหมือนกับที่ชุมชนโอเพ่นซอร์สส่วนใหญ่ทำ ฉันใช้ห้องสมุดจากศูนย์กลาง git ฉันพบว่าโปรแกรมส่วนใหญ่มีโครงสร้างที่ดี นอกจากนี้อ่านฉัน

คำถามของฉันคือ:

  1. นั่นคือโครงสร้างไฟล์ทั่วไปหรือหลักการตั้งชื่อในชุมชนหรือเป็นเรื่องของรสนิยมส่วนตัวหรือไม่?

  2. วิธีที่จะเป็นโปรแกรมเมอร์ที่เป็นระเบียบมากขึ้นแทนที่จะเขียนโค้ดก็ใช้งานได้ แต่มีระเบียบมากขึ้นที่ช่วยให้อื่น ๆ ง่ายที่จะได้รับในโครงการของคุณ?


ฉันไม่คิดว่าจะมีคำตอบเวทมนต์ แต่วิธีหนึ่งที่จะเข้าถึงคือการดูว่าอะไรทำให้คุณ 'เข้า' โครงการโอเพ่นซอร์สที่จัดระเบียบอย่างดีที่คุณใช้และทำซ้ำสิ่งเหล่านั้นในโครงการของคุณเอง ทีละน้อยทีละชิ้น
ฟิลิป

2
เช่นเดียวกับสิ่งต่างๆมากมายในการเขียนโปรแกรมโดยที่สำคัญที่สุดคือต้องสอดคล้องกัน
Tom Squires

1
@ TomSquires: ฉันจะต้องไม่เห็นด้วย สิ่งที่สำคัญที่สุดคือการปรับปรุงตัวเองและเอกสาร + รหัส ความสอดคล้องเพื่อประโยชน์ของความสอดคล้องทำหน้าที่เพื่อให้ซอฟต์แวร์ยากที่จะรักษาเมื่อเวลาผ่านไป
l0b0

ไม่เพียง แต่จะไม่มีคำตอบที่น่าอัศจรรย์มีวิธีการเขียนโปรแกรมที่แตกต่างกันหลายล้านวิธีจัดโครงสร้างโครงการ ฯลฯ และผู้คนจำนวนมากที่มีความคิดเห็นดีหรือไม่ดีเกี่ยวกับพวกเขาทั้งหมด มีสิ่งเล็ก ๆ น้อย ๆ มากมายที่คุณสามารถทำได้หลายสิ่งที่ใหญ่กว่าเช่นกัน แต่ไม่มีเวทย์มนตร์กระสุน
ozz

คำตอบ:


3

โครงสร้างโครงการพัฒนาได้รับการกล่าวถึงหลายครั้งใน Stack * ( 1 , 2 ) เพียงแค่เลือกสิ่งที่คุณเกี่ยวข้องกับสถานการณ์ของคุณ

เพื่อให้เป็นระเบียบมากขึ้นฉันได้ลองวิธีและเครื่องมือต่าง ๆ สำหรับการจัดระเบียบโค้ดและข้อมูลโดยรอบ:

  • เครื่องมือติดตามข้อผิดพลาดเช่นไฟล์ข้อความ GitHub / Bugzilla / TODO
  • Wikisเช่นGTD TiddlyWiki / GitHub
  • สร้างเครื่องมือเช่น make / Maven / rake
  • เครื่องมือการจัดการโครงการเช่น JIRA และ Redmine
  • บรรณาธิการเช่น jEdit และกลุ่ม
  • ผสานเครื่องมือเช่น Meld และ kdiff3
  • ระบบควบคุมเวอร์ชันเช่น Subversion และ Git (จริง ๆ แล้วลบทิ้งเพียงใช้ Git และช่วยให้คุณเศร้าโศกมาก)

เมื่อคุณลองหลาย ๆ วิธีแล้วคุณอาจพบว่าบางวิธีนั้นเหมาะสมกับวิธีคิดของคุณดีกว่าวิธีอื่น แต่โปรดจำไว้ว่ามีเครื่องมือที่ดีกว่าซึ่งคุณไม่รู้อยู่เสมอและเครื่องมือต่าง ๆ จะติดต่อกันเสมอ ดังนั้นคุณควรพร้อมที่จะลองทำอย่างอื่นอยู่เสมอแม้กระทั่งสิ่งที่คุณได้ลองและถูกไล่ออกไปแล้วบนพื้นฐานของสิ่งที่คุณเรียนรู้และคุณจะสามารถนำไปใช้เพื่อประโยชน์ที่ดีกว่า


ลิงค์ gtdtw ลงมา?
ell

2

refactorรหัสของคุณจนกว่าคุณจะมีความสุขกับมัน

เมื่อเวลาผ่านไปคุณจะต้องปรับโครงสร้างให้น้อยลงและท้ายที่สุดคุณจะทำมันให้ถูกต้องตั้งแต่ครั้งแรกที่ใช้ *

เรียนรู้ด้วยการทำ

* ส่วนใหญ่ถูกต้อง :)


+1 รหัสคือ 'ถูกต้อง' เมื่อการทำซ้ำ ๆ ถูกบีบออกมาและการทดสอบกำลังผ่าน โครงสร้างอาจเปลี่ยนแปลงเพื่อผ่านการทดสอบที่ตามมา ฉันพยายามอย่างหนักที่จะไม่แนะนำความซับซ้อนในการคาดหวังการทดสอบที่ไม่ได้เขียนไว้
วินไคลน์

0

Git และ SourceForge เหล่านี้เป็นสองรายการที่ฉันใช้เมื่อเขียนโปรแกรมขนาดใหญ่ที่ไม่มีการจัดระเบียบ สำหรับรายละเอียด Google ทั้งสองอย่างที่ฉันไม่สามารถเชื่อมโยงในขณะนี้ด้วยเหตุผลแปลก ๆ ขออภัยด้วยหวังว่าสิ่งนี้จะช่วยได้


0

รับคำติชมเกี่ยวกับสไตล์การเขียนโค้ดของคุณจากคนที่มีทักษะและประสบการณ์

วิธีที่ฉันทำก็คือฉันได้งานที่ฉันและโปรแกรมเมอร์อาวุโสให้ความร่วมมือในโครงการและเขาตรวจสอบรหัสทั้งหมดที่ฉันเช็คอินนาน ๆ ครั้งเขาเขียนอีเมลถึงฉันทุกอย่างที่รบกวนหรือทำให้เขาสับสนเกี่ยวกับรหัสของฉัน ใช้เวลาสักพักหนึ่งในการหาสไตล์ที่ทั้งฉันและเขารู้สึกสบายใจพอสมควรและเรามีการถกเถียงกันอย่างดุเดือดเกี่ยวกับบางสิ่งบางอย่าง แต่ทั้งหมดนี้ฉันได้เรียนรู้มากมายและเราแยกเป็นเพื่อนกัน

อ่านหนังสือ / บทความเกี่ยวกับรูปแบบการออกแบบนำรูปแบบที่แตกต่างกันไปใช้กับปัญหาของคุณและดูว่าคนที่คุณคิดว่ามีประโยชน์ในสถานการณ์ใด

อ่านหนังสือ / บทความเกี่ยวกับการตั้งชื่อแบบแผนและรูปแบบการจัดรูปแบบ ชุมชนที่ต่างกันใช้สไตล์ที่ต่างกัน โดยทั่วไปแล้วควรใช้สไตล์ที่คนส่วนใหญ่มีแนวโน้มที่จะอ่านรหัสของคุณจะรับรู้

คำแนะนำที่เป็นรูปธรรมเกี่ยวกับการสร้างรหัส:

  • เมื่อคุณเห็นว่าบางส่วนของรหัสของคุณสามารถทำได้ง่ายขึ้นให้ทำ
  • เมื่อคุณเห็นว่าบางส่วนของรหัสของคุณสามารถนำกลับมาใช้ใหม่ทำให้มันเป็นฟังก์ชั่นและนำมาใช้ใหม่
  • อย่ากลัวที่จะเปลี่ยนชื่อของตัวแปรและฟังก์ชั่นถ้ามันไม่ดี
  • เมื่อคุณมีความคิดบางอย่าง (struct, ฟังก์ชั่น, คลาส, รูปแบบ, อะไรก็ได้) ที่สามารถทำให้ชีวิตของคุณง่ายขึ้นสร้างมันและใช้มัน
  • เปลี่ยนใจบ่อยๆ ทุกครั้งที่คุณทำคุณเรียนรู้บางสิ่งบางอย่าง

การสละเวลาในการทำสิ่งนี้จะทำให้คุณช้าลงในช่วงแรก เมื่อโค้ดของคุณค่อย ๆ สวยงามขึ้นเรื่อย ๆ มันจะง่ายต่อการบำรุงรักษาและคุณจะได้รับประโยชน์จากการทำงานของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.