ระเบียบวิธี / เครื่องมือสำหรับเมื่อพัฒนาด้วยตัวคุณเอง [ปิด]


10

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

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

โดยทั่วไปจะติดตามตัวเองและไม่หลงทาง


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

@RobertHarvey ฮ่าฮ่ามันเป็นเรื่องจริงมาก เรียงกันของ ฉันกำลังพัฒนาความคิดที่ฉันมีโครงการส่วนบุคคล เป็นเพียงซอฟต์แวร์ที่มีขนาดใหญ่ขึ้นจากนั้นฉันจินตนาการและมีสิ่งที่ฉันยังต้องเรียนรู้วิธีการทำงานและจากนั้นหาวิธีการพัฒนาสิ่งนั้น
Cassio

1
@RobertHarvey ปัญหาหลักอาจจะเป็นการระดมความคิดในรายละเอียดทำให้ติดตามสิ่งที่ต้องทำและมุมมองเกี่ยวกับระบบโดยรวม
Cassio

2
ฉันแน่ใจว่า 99.9% ว่าเรามีคำถามนี้ในอีกสองสามคำถาม แต่ฉันไม่พบพวกเขาในขณะนี้
อดัมเลียร์

4
ฉันพยายามหลงทางเสมอ มันเป็นหนทางที่รวดเร็วในการเรียนรู้
Joel Etherton

คำตอบ:


5

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


Yup - Mercurial เป็นหนึ่งในเครื่องมือเหล่านั้นที่ให้ความรู้สึกเหมือนถูกประดิษฐ์ขึ้นโดย Apple :) เรียบง่าย แต่ทรงพลังสวยงาม แต่ก็มีประโยชน์ ...
Rook

4

มันอาจเติบโตได้ง่ายกว่าที่คุณสนใจ ไม่ได้ช่วงที่กว้าง

มันยากที่จะต้องพิจารณาองค์ประกอบหลายครั้งมากเกินไป

และแล้ว ... มันจะกลายเป็นรถไฟเหาะตีลังกาถดถอย
ทุกสิ่งที่คุณทำแตกไปก่อนหน้าและการย้อนกลับไม่ได้ช่วยอะไร

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

การทดสอบจะเพิ่มความเครียดให้กับพลังงานของคุณ

หากโครงการเกี่ยวกับ UI ... คุณน่าจะเป็นผู้ชนะ:

  • การทดสอบ UI เป็นเรื่องยาก
  • การทดสอบ UI อัตโนมัติ ... ยังคงยากอยู่

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

ปัญหาอื่น ๆ :

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

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

การสร้างกราฟไอเดียที่คุณชี้ไปอาจช่วยได้

ฉันใช้Freemind , CMaps , XMind , yEd , graphvizและ…อย่างอื่น

XMindไร้จุดหมายน้อยกว่า:

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

ดินสอและสมุดบันทึกยังคงทำคะแนนได้ดีในสิบอันดับแรกของฉัน:

  • ฉันสแกนบันทึกจำนวนมากของฉัน
  • ฉันจะทำให้หลายภาพวาดเล็ก ๆ น้อย ๆ explicative

    • (ถ้าคุณคิดด้วยภาพคุณอาจไม่เคยพบเครื่องมือระดมสมองที่สมบูรณ์แบบ)

ในฐานะที่เป็นทางเลือกสุดท้ายคุณสามารถเตรียมจุดไฟสำหรับการบริโภคของคุณเอง :)


+1 อย่างไรก็ตามคุณมีข้อเสนอแนะเกี่ยวกับสิ่งที่ "ทำให้ความคิดของคุณเกี่ยวกับสิ่งที่คุณยังไม่ชัดเจน"?
Cassio

@Cassio ฉันจะสลับไปมาระหว่าง xmind และ pencil + sketchbook ทำรายการแบบแหลมใน libreoffice เขียนตัวอย่างและทดสอบการใช้งานโดยประมาณ มันเป็นกระบวนการที่ใช้เวลานานสวย แต่คุณต้องทิ้งห่างบรรทัด improductive บางส่วนของความคิดที่จะได้รับสิ่งที่รู้สึกขวา (PS: กระดาษ
ยู่ยี่

1
@ZJR แน่นอน บางครั้งฉันกลัวที่จะเขียนสิ่งที่ฉันไม่ต้องการและเสียเวลากับมัน แต่ตอนนี้ฉันเห็นว่ามันเป็นกระบวนการที่ใช้งานได้ เริ่มแรกเราเขียนสิ่งที่ไร้ประโยชน์ แต่เราปรับปรุงตามเวลา :) ขอบคุณ!
Cassio

3

การเขียนโปรแกรมความรู้

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

หากคุณกำลังเขียนบทความ (หรือหนังสือหรือรายงานหรือเอกสาร) เกี่ยวกับโครงการของคุณคุณก็มักจะทำงานต่อไป

เริ่มต้นด้วยโครงร่างของสิ่งที่คุณกำลังทำ: ใช้ภาพรวมของเคสรีลีส 1 รีลีส 2 รีลีส n จดบันทึกสรุปของกรณีการใช้งาน จัดลำดับความสำคัญพวกเขา รับพวกเขาเป็น sprints และรุ่น

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

ทำซ้ำสำหรับการวิ่งแต่ละครั้ง ตรวจสอบและแก้ไขเอกสารของคุณเป็นครั้งคราว

มีเครื่องมือการเขียนโปรแกรมความรู้มากมาย พวกเขาสามารถช่วยคุณสร้างแหล่งที่สร้างเอกสารและรหัสทั้งจากข้อความเดียว

ฉันใช้สฟิงซ์และPyLitแต่นั่นเป็นเพราะฉันเป็นโปรแกรมเมอร์ Python


ดีที่จะกระทืบกระดาษมหาวิทยาลัยจากมันแล้วลืมเรื่องไม่ดีถ้าวางแผนที่จะปล่อยหรือ mantain ผลิตภัณฑ์ในภายหลัง ทุกคนในทุกที่ควรใช้doxygenแม้ในงูหลาม แต่นั่นเป็นเพราะฉันเป็นแฟน :)
ZJR

2

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

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

ในรหัสแรกของฉันกระทำฉันยังบันทึกไฟล์การระดมสมองในที่เก็บซอร์สโค้ด (ฉันใช้bitbucket ) และทำให้ทันสมัยด้วยแนวคิดล่าสุดของฉัน


ดีมาก. ฉันทดสอบสิ่งเหล่านี้ทั้งหมดแล้ว ขอบคุณ!
Cassio

2

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

ฉันกำลังทำงานในโครงการส่วนบุคคลเช่นเดียวกับที่คุณอธิบาย ฉันใช้ Git, Redmine, JUnit และ Jenkins เพื่อตอบสนองทุกหมวดหมู่ที่ฉันอธิบาย กระบวนการทำงานของฉันคือ:

  • เลือกตั๋วเพื่อทำงาน
  • สาขารหัสฐาน
  • พัฒนารหัสและการทดสอบสำหรับภารกิจ (ส่งการเปลี่ยนแปลงสาขาที่จุดบันทึกที่ดี)
  • รวมสาขากลับไปที่ลำต้น
  • ตรวจสอบว่าการสร้างสำเร็จการทดสอบผ่านและไม่มีปัญหาอื่น ๆ
  • ทำซ้ำ

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


2

เครื่องมือ

  • ระบบควบคุมเวอร์ชัน (แม้ว่าคุณจะเป็นนักพัฒนาเดียวในโรงรถหรือพีซีส่วนตัวของคุณ): GIT, Mercurial, Tourtoise

  • Editor พร้อมเน้นซอร์สโค้ดแม้ว่าคุณจะมี IDE (Scintilla, Vim, Notepad)

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

  • เครื่องมือออกแบบ: Rational Rose, Umbrello, (UML, ER,) Visio หรือ "เครื่องมือออกแบบของนักพัฒนาผู้น่าสงสาร" เช่น Power Point, Corel Draw, Open Office Draw

  • เครื่องมือเปรียบเทียบข้อความ / รหัสต้นฉบับข้อความเช่น WinMerge


มีประโยชน์มาก! ฉันเอาสิ่งเหล่านี้ไปปฏิบัติ ขอบคุณ
Cassio

1

ขึ้นอยู่กับว่าคุณจะแยกแยะและจัดการงานที่แตกต่างกันอย่างไรเพราะคุณจะต้องดูทุกขั้นตอนของกระบวนการพัฒนา

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

ครั้งแรกในความคิดของฉันคุณต้องจดสิ่งที่คุณคาดหวังว่าซอฟต์แวร์จะทำและโดยเฉพาะอย่างยิ่งสิ่งที่มันจะไม่ทำ นั่นเป็นจุดสำคัญ ขั้นตอนต่อไปคือการแบ่งระบบสุดท้ายออกเป็นระบบย่อยที่ต่ำกว่าทำให้กระบวนการสร้างง่ายขึ้น และสุดท้าย แต่ไม่ท้ายสุดคุณจะต้องเลือกเครื่องมือของคุณ โดยพื้นฐานแล้ว IDE ที่ดี VCS และ data modeler คุณสามารถเพิ่มเครื่องมืออื่น ๆ มากมายเพื่อช่วย แต่ระวังไม่ให้เริ่มผิดแทร็ก

การเริ่มต้นดูเหมือนจะไม่น่าดึงดูดนัก แต่กระบวนการจะสนุกตลอดเวลา


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