หนังสือที่ดีที่สุดเกี่ยวกับทฤษฎีและการปฏิบัติของสถาปัตยกรรมซอฟต์แวร์? [ปิด]


32

ฉันมีนักพัฒนาสองสามคนที่ บริษัท ของฉันซึ่งต้องการเปลี่ยนจากการเขียนโปรแกรมมาเป็นสถาปัตยกรรม หนังสือที่ดีที่สุดในทฤษฎีและการปฏิบัติของสถาปัตยกรรมซอฟต์แวร์คืออะไร? รวมภาพหน้าปกถ้าทำได้

รู้สึกฟรีที่จะรวมหนังสือทั่วไปและหนังสือที่เกี่ยวข้องกับเทคโนโลยีเฉพาะ


3
มันไม่ใช่คำตอบโดยตรงดังนั้นเพียงแค่แสดงความคิดเห็น วิธีที่ดีที่สุด (และจริงๆเท่านั้น) ในการเรียนรู้ที่จะเป็นสถาปนิกมาจากสถาปนิกคนอื่นโดยเฉพาะสถาปนิกหลัก สถาปัตยกรรมซอฟต์แวร์และวิศวกรรมโดยทั่วไปยังคงอยู่ในสถานะ pre-industrialized จากมุมมองของสาขาวิชาวิศวกรรมอื่น ๆ เรายังคงฝึกหัด -> คนเดินทาง -> ความก้าวหน้าของประเภทมาสเตอร์
JP Alioto

คำตอบ:


15

ข้อความแสดงแทน

(ลิงก์ไปยังหนังสือ)

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


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

แม้ว่าจะเรียกว่า "Enterprise Application Architecture" แต่จะอยู่ในระดับเดียวกับหนังสือ GoF Design Patterns ซึ่งเป็นการออกแบบระดับชั้นแทนที่จะเป็นสถาปัตยกรรมระดับแอปพลิเคชัน
Thomas Owens

ฮึฉันไม่ชอบหนังสือเล่มนี้ มันจะไม่ช่วยให้คุณกลายเป็นสถาปนิก
JP Alioto

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

16

ข้อความแสดงแทน

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


11

อ้างทั่วไป / หนังสืออ้างอิงสถาปัตยกรรมซอฟต์แวร์และหนังสือที่ใช้เมื่อผมเอาสถาปัตยกรรมซอฟแวร์การเรียนการสอนในมหาวิทยาลัยของฉันคือสถาปัตยกรรมซอฟต์แวร์ในการปฏิบัติ (ฉบับที่ 2) โดยเล็นเบสพอลเคลเมนท์และริค Kazman

ศาสตราจารย์อย่างน้อยหนึ่งคนที่สอนวิชานี้ได้เปลี่ยนตำราเรียนเป็นสถาปัตยกรรมระบบซอฟต์แวร์โดย Nick Rozanski และ Eoin Woodsแต่ฉันไม่สามารถรับรองคุณภาพหรือเนื้อหาของหนังสือเล่มนั้นได้ อ้างอิงจากSergio Acosta (ในความคิดเห็น) หนังสือของ Rozanski นั้นใหม่กว่าโดยอ้างอิงจากผลงานของ Bass และเขาคิดว่าอ่านง่ายขึ้น ฉันไม่ค่อยผิดหวังกับหนังสือที่ใช้ในโปรแกรมวิศวกรรมซอฟต์แวร์


2
ฉันใช้ทั้งสองอย่าง (เบสและ Rozanski) บาสเป็นสถาปัตยกรรมในพระคัมภีร์มาเป็นเวลานาน แต่ Rozanski นั้นใหม่กว่าและทันสมัยกว่า อ่านและอ่านง่ายขึ้นอยู่กับเบส ' ฉันขอแนะนำให้เริ่มต้นด้วย Rozanski's
Sergio Acosta

1
+1 หนังสือเบสเป็นหนังสือที่ดีเมื่อฉันเริ่มเข้าสู่สถาปัตยกรรม มันแห้งไปหน่อย แต่มันทำให้คุณเข้าใจถึงสิ่งต่าง ๆ ที่คุณควรคิด
RationalGeek

10

รูปแบบการออกแบบ

ต้องอ่านสำหรับโปรแกรมเมอร์ทั้งหมด:

http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612


2
เลิกใช้หนังสือตอนนี้ รูปแบบส่วนใหญ่ของ Gang of Four ถูกนำไปใช้ในทางที่ผิดจนเกือบจะต่อต้านรูปแบบได้แล้ว เช่นเดียวกับโรงงานเดี่ยวและนามธรรม
Uberto

1
@ Uberto นั่นเป็นเหตุผลที่ทุกคนควรอ่านหนังสือเล่มนี้ มันอธิบายว่าทำไมและวิธีการใช้แต่ละรูปแบบพร้อมกับเวลาที่คุณควรพิจารณาอย่างอื่น ถ้ามีคนอ่านรายการรูปแบบทั้งหมดฉันคิดว่าปัญหาเหล่านั้นจะหายไป
Thomas Owens

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

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

8

ซัคคุณอ่านมาแล้วเหรอ? ฉันเคยดูมาก่อน แต่บทวิจารณ์ของอเมซอนมันดูไม่ค่อยดีเท่าไหร่
DXM

ฉันอ่านชิ้นมันแล้ว ฉันไม่แน่ใจว่าฉันอ่านบทความทุกเรื่องหรือไม่ แต่บางบทความที่ฉันอ่านมีค่า
Zachary K

7

ข้อความแสดงแทน

นี่จะเป็นตัวเลือก # 2 ของฉัน หนังสือที่ดีเกี่ยวกับการปฏิบัติและรหัสที่ดี บางครั้งอวดความรู้เล็กน้อย


ฉันเห็นด้วยเกี่ยวกับเรื่องนี้ว่ามันเชื่องช้า แต่การปฏิบัติที่มันสนับสนุนนั้นดีกว่าฟังก์ชั่นบรรทัดมากกว่า 2000 รายการ
riwalk

ใช่แน่นอนว่าเนื้อหานั้นดีมาก
Uberto

หนังสือเล่มนี้มีระดับต่ำเกินไปที่จะพิจารณาสถาปัตยกรรมซอฟต์แวร์
Steven Jeuris

6

ข้อความแสดงแทน

นี่คือตัวเลือกหมายเลข # ของฉันตอนนี้ หนังสือที่ดีที่สุดเกี่ยวกับวิธีสร้างแอพพลิเคชั่น (เติบโต) ตอนนี้




3

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



3

ฉันไม่ได้อ้างถึงสิ่งที่เคยเป็นของคนอื่นดังนั้นฉันจะเพิ่มอันนี้:

แนวคิดเทคนิคและแบบจำลองของการเขียนโปรแกรมคอมพิวเตอร์โดยปีเตอร์แวนรอยและเซย์ฮาริดี้

แนวคิดและรูปแบบของการเขียนโปรแกรมคอมพิวเตอร์

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

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

ค่อนข้างละเอียดในบางครั้ง แต่เขียนได้ดีมาก

บางทีหนังสือทฤษฎีซีเอสอาจมากกว่าหนังสือสถาปัตยกรรมองค์กร แต่ฉันคิดว่าคำสอนของมันมีค่ามากสำหรับการใช้กับซอฟต์แวร์อุตสาหกรรม




2

หนังสือที่น่าสนใจคือสถาปัตยกรรมของแอปพลิเคชั่นโอเพนซอร์ซ

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

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


2

Microsoft มีสิ่งที่ดีจริงๆในเรื่องนี้ สำหรับการเริ่มต้นพวกเขามีหนังสือฟรียอดเยี่ยมอยู่ที่นี่:

http://msdn.microsoft.com/en-us/library/ff650706.aspx

นอกจากนี้ยังมีกระดาษสีขาวจำนวนมากในการออกแบบอยู่ที่นี่:

http://msdn.microsoft.com/en-us/practices/bb190351

คุณอาจต้องการอ่านรูปแบบการออกแบบ:

http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

แล้วมีคลาสสิก - เดือนคนในตำนานรหัสสมบูรณ์โปรแกรมเมอร์เชิงปฏิบัติ ฯลฯ googling เล็กน้อยจะช่วยให้คุณค้นหาหนังสือที่ดี


2

ลองหนังสือเล่มเล็กเล่มนี้

สถาปัตยกรรมซอฟต์แวร์สำหรับนักพัฒนา - หนังสือคู่มือที่เป็นประโยชน์และจริงจังสำหรับสถาปัตยกรรมซอฟต์แวร์

หนังสือเล่มนี้เป็นคอลเลกชันของบทความที่รวมกันเป็นแนวทางในทางปฏิบัติและเป็นประโยชน์ต่อสถาปัตยกรรมซอฟต์แวร์

  1. สถาปัตยกรรมซอฟต์แวร์คืออะไร

  2. สถาปนิกซอฟต์แวร์มีบทบาทอย่างไร?

  3. คุณจะกำหนดสถาปัตยกรรมซอฟต์แวร์ได้อย่างไร

  4. คุณจะแบ่งปันสถาปัตยกรรมซอฟต์แวร์ได้อย่างไร

  5. คุณจะส่งมอบสถาปัตยกรรมซอฟต์แวร์ได้อย่างไร


บล็อก codingthearchitecture.com ยังมีบทความที่ยอดเยี่ยมเกี่ยวกับวินัยของสถาปัตยกรรมซอฟต์แวร์
RationalGeek


1

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

หมายเหตุเล็กน้อยแม้ว่า:

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

"PoEAA" โดย Fowler เป็นหนังสือที่ดี แต่อย่างที่คนอื่นพูดแบบนี้ตอนนี้และหลายรูปแบบที่นำเสนอได้ล้าสมัยเมื่อหลายปีก่อน

หนังสือ DDD ของ Eric Evans เป็นหนังสือที่แข็งแกร่งและเป็นแรงบันดาลใจอย่างมากเกี่ยวกับการสร้างซอฟต์แวร์และการทำงานร่วมกันของลูกค้า - ทักษะที่มีคุณค่าสำหรับสถาปนิก แต่ก็ดีสำหรับนักพัฒนาเช่นกัน


1

สิ่งที่ฉันขอแนะนำให้ไปอ่านCode Complete 2ก่อน สิ่งนี้จะช่วยให้คุณกำหนดความคิดและค้นหาวิธีที่ดีที่สุดในการทำสิ่งต่าง ๆ

ในมุมมองของสถาปัตยกรรมการเริ่มต้นที่ดีด้วย GOF หรือรูปแบบการออกแบบ Head First

รูปแบบของสถาปัตยกรรมแอปพลิเคชันองค์กรเป็นหนังสือที่ยอดเยี่ยม

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