วิธีจัดระเบียบโครงการแบบคนเดียวได้อย่างไร [ปิด]


21

ทุก ๆ ครั้ง (อ่าน: เกี่ยวกับทุกวัน) ฉันคิดไอเดียใหม่เริ่มโครงการใหม่ในตัวแก้ไข / IDE รายการโปรดเริ่มการเข้ารหัสและในวันถัดไปฉันจะลบมันและเริ่มสิ่งใหม่ ฉันได้เขียนโปรแกรมมาประมาณหกปีแล้วและในช่วงหกปีที่ผ่านมาฉันได้ทำโครงการเล็ก ๆ เพียงหนึ่งเดียว (วิดเจ็ตแดชบอร์ดสำหรับ Pastebin.com) แม้ว่าสิ่งนี้อาจจะดีสำหรับการเรียนรู้การเขียนโค้ด แต่ฉันต้องการทำบางสิ่ง

ฉันควรทำอะไรก่อนและหลังการเข้ารหัสจริง? แหล่งข้อมูลที่ดีอะไรที่สอนฉันถึงวิธีจัดระเบียบโครงการแบบคนเดียว


หากเป็นเรื่องสำคัญฉันต้องการพัฒนาเว็บหรือ Mac


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

1
@Thomas เป็นของตัวเองเหตุผลหลักที่ฉันลบโปรเจ็กต์ที่ยังไม่เสร็จคือเพราะมันทำให้โฟลเดอร์โปรแกรมของฉันดูยุ่งเหยิง (เช่นมีไฟล์ที่ฉันจะไม่ใช้อีกเลย) ฉันสนใจในเทคโนโลยีมากฉันคิดว่ามันแค่ขาดแรงบันดาลใจ
rightfold

คำตอบ:


18

ฉันคิดว่าปัญหาที่แท้จริงในระยะยาวเป็นแรงบันดาลใจมากกว่าเป็นองค์กร

  1. ค้นหาผู้ใช้และพูดคุยกับพวกเขา ดูโครงการของคุณเป็นของขวัญ (หรือผลิตภัณฑ์ที่สามารถขายได้) แก่ผู้คนเหล่านั้น (มีคนที่จะตีกลับความคิดนอกคอกเป็นสิ่งที่ดีแม้ว่าพวกเขาจะไม่พัฒนารหัสกับคุณ)

    การมีแรงจูงใจทางสังคมจะมีพลังมหาศาลในการทำให้โครงการน่าสนใจในระยะยาวมากกว่าความอยากรู้อยากเห็นส่วนตัว

  2. เป้าหมายของคุณควรเป็นฟังก์ชั่นที่มีประโยชน์ วางมันลงบน SourceForge หรือ GitHub และปฏิบัติต่อโครงการเป็นสิ่งที่ต้องการโอกาสในการเอาชีวิตรอดแม้ว่าคุณจะโดนดาวตกในทันใด

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

  3. เลือกเป้าหมายการเรียนรู้เฉพาะสำหรับตัวคุณเอง โครงงานหรือเทคโนโลยีใดช่วยให้คุณเรียนรู้ หากปรากฎว่าเทคนิคไม่เหมาะกับพื้นที่ปัญหาคุณจะสนใจพอที่จะจบรุ่น 1.0 อย่างน้อยก่อนที่จะวางทิ้งไว้หรือไม่?

    ตัวอย่างของเป้าหมายดังกล่าวรวมถึงการเขียนโปรแกรมแยกวิเคราะห์โปรโตคอลเครือข่ายลักษณะของเกม AI กรอบการเรียนรู้หรือชุดเครื่องมือภาษาใหม่ ฯลฯ

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


2
+1 สำหรับ "ถ้าคุณถูกดาวตกโจมตีอย่างกระทันหัน" ไม่จริงจังเคล็ดลับที่ยอดเยี่ยมกับการผัดวันประกันพรุ่ง
Randolf Rincón Fadul

สิ่งหนึ่งที่จะเพิ่มหลังจากได้รับประโยชน์จากประสบการณ์: ถ้าคุณต้องการความช่วยเหลือคุณอาจจำเป็นต้องโปรโมตโครงการโอเพนซอร์ซของคุณหากคุณไม่ต้องการที่จะเป็นนักพัฒนาเพียงผู้เดียว "ถ้าคุณสร้างมันพวกเขาจะมา" ไม่น่าเชื่อถือมาก
Darien

2

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

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

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

ติดตามปัญหาที่เกิดขึ้นในโครงการของคุณ สิ่งนี้สามารถทำได้ด้วยไฟล์ข้อความไม่กี่รายการภายในโครงการ ไฟล์เช่น TODO, Changelog, README (อาจรวมถึงข้อบกพร่องที่รู้จักและปัญหา) อาจเหมาะสม

เมื่อคุณได้รับรหัสการทำงานแท็กในการควบคุมเวอร์ชันของคุณ หากการแบ่งปันที่มีค่าควรทำเช่นนั้น

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

เมื่อคุณละทิ้งโครงงานทำบทเรียนที่เรียนรู้กระบวนการ เพิ่มหมายเหตุเกี่ยวกับสาเหตุที่คุณละทิ้งโครงการ

ทบทวนบทเรียนที่คุณเรียนรู้เดือนละครั้ง เมื่อเวลาผ่านไปคุณสามารถเพิ่มช่วงเวลาระหว่างความเห็น


2

นี่คือลิงค์ของ " Doing Agile ในทีมหนึ่ง " มันเป็นการอ่านที่น่าสนใจ!

นอกจากนี้คุณอาจต้องการพิจารณาว่าทำไมวินัยของซอฟต์แวร์ dev ที่เราทำ "ที่ทำงาน" มีความสำคัญ พวกเขามีความสำคัญหากมี 10 คนในทีม? ไม่สำคัญเพราะมันช่วยให้คุณคิดถึงโครงการของคุณ

กลุ่มเป้าหมายของคุณคือใคร (ถ้าเป็นคุณก็เยี่ยมเลย - แต่จำสิ่งที่คุณต้องการในตอนแรก)

หากคุณกำลังทำ UI ลองคิดถึงความต้องการของผู้ชมของคุณจากนั้นทำการจำลองก่อนที่จะเข้าสู่การพัฒนา UI ของฮาร์ดคอร์

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


1

ให้ความคิดเห็นของคุณหยุดการลบโครงการของคุณ!

ฉันมักจะไม่เก็บโครงการที่ฉันไม่ได้พัฒนาอย่างแข็งขัน (หรือคาดการณ์ล่วงหน้าว่าจะพัฒนาอย่างแข็งขันในอนาคตอันใกล้) บนคอมพิวเตอร์ของฉัน แต่ไฟล์ต้นฉบับมีอยู่ในที่เก็บ SVN และทุกอย่าง (รวมถึงไฟล์ IDE config) ถูกสำรองไว้ HDD ภายนอก มันไม่ได้ตอบคำถาม questiStop ของคุณลบงานของคุณและมุ่งเน้นไปที่การสร้างแรงจูงใจให้ตัวเอง

หากคุณกำลังมองหาที่เก็บโฮสต์ให้ดูที่ Google Code, SourceForge, GitHub และ BitBucket อัปโหลดไฟล์เก็บไว้ที่ใดที่หนึ่งและเมื่อคุณมีความสนใจใหม่ให้ดึงไฟล์เหล่านั้นลงมา แม้ว่าคุณจะสามารถทำให้พวกเขาเป็นส่วนตัวได้ แต่คุณสามารถทำให้พวกเขาเป็นแบบสาธารณะได้หากคุณไม่ละอาย บางทีบางคนอาจสนใจเริ่มงานใหม่หรือเรียนรู้จากตัวอย่างของคุณ (โดยเฉพาะถ้าคุณใช้ไลบรารีหรือกรอบงานที่น่าสนใจ)

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


1

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

โครงการประเภทอื่นคือซอฟต์แวร์ / sites / etc จริง ๆ ซึ่งก็คือธุรกิจโดยที่ 'โครงการ' เหล่านั้นไฟล์โปรแกรมเป็นเพียงเครื่องมือและการพัฒนาสิ่งที่ซับซ้อนนั้นต้องการแรงจูงใจและเป้าหมาย :

  • สิ่งที่คุณพัฒนา (เว็บไซต์ / แก้ไขข้อความ / แอพมือถือ / ... )
  • สิ่งที่คุณต้องการ (ทำเงินรับเทคโนโลยีใหม่ / นำไปสู่โอเพนซอร์ส / ... )
  • คุณจะทำเมื่อไหร่ (คุณใช้เวลาทุ่มเทโครงการของคุณเท่าไหร่คุณวางแผนที่จะทำเช่นนั้นนานเท่าไหร่)

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

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

หากคุณติดอยู่ที่การเขียนรหัส (เช่นเขียนรหัสของคุณใหม่อย่างหนาแน่น) คุณอาจไม่ได้มีประสบการณ์เพียงพอที่จะทำเช่นนั้น รับหนังสือดีๆเกี่ยวกับวิศวกรรมซอฟต์แวร์แพลตฟอร์มของคุณ (mac / เว็บ / ฯลฯ ) อ่านโค้ดที่เขียนโดยนักพัฒนาที่มีประสบการณ์มากกว่าซึ่งทำสิ่งที่คล้ายกัน มีสถานที่มากมายให้ทำในขณะนี้ (gitub, รหัส google, บล็อกการเขียนโปรแกรม, stackoverflow)

อย่าพยายามแก้ปัญหาที่ซับซ้อนมาก (เช่นผู้เขียนคอมไพเลอร์หรือระบบปฏิบัติการ) ตั้งแต่เริ่มแรกให้ย่อยมันเป็นงานเล็ก ๆ ส่วนใหญ่มักจะมีคนสร้างห้องสมุดที่ช่วยให้คุณแก้ปัญหาได้


0

มีคุณพิจารณาขอให้คนที่คุณรักสิ่งที่พวกเขาจริงๆต้องการสำหรับ webtool แล้วจริงทำให้มันสำหรับเขาหรือเธอ?

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

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