«Шаблони архітектури корпоративних додатків» Фаулера все ще актуальні? [зачинено]


77

Думаю придбати "Шаблони архітектури корпоративних додатків" Мартіна Фаулера.

З того, що я бачу, це здається чудовою книгою, архітектурною книгою з ухилом до корпоративної Java - саме те, що мені потрібно.

Однак у комп’ютерні роки це досить давно. 2003 рік був давним-давно, і з того часу все пішло трохи далі.

Тому мені цікаво, чи може хтось сказати мені: чи ця книга все ще актуальна і чи варта її прочитати?


3
Люди все ще схильні цитувати GoF.
Том Хоутін - таклін

9
Книга про мову програмування від 2003 року була б застарілою. Але PEAA - це не мова програмування, це об’єктно-орієнтований дизайн. Якщо ви не перейшли до наступної великої справи (наприклад, функціонального програмування чи програмування моделей за допомогою M), ця книга сьогодні настільки ж актуальна, як і в день її виходу.
G-Wiz

2
Як функціональне програмування наступне велике? Це бере свій початок у 50-х роках з LISP (1958), і навіть у тридцятих роках, якщо враховувати Лямбда-числення, але давайте не будемо нікчемними. Так, це все ще живе і ногами. Але наступна велика річ ... тоді алфавіт - це наступна велика річ: D
Хелдар

Зауважте, що книга вийшла в листопаді 2002 року, а не в 2003 році. Однак вона дуже актуальна - мова йде про принципи та ідеї, а не про кодекс. Доказ концептуального коду всередині застарілий, але якщо ви знаєте C # або Java, ви можете легко оновити ці фрагменти коду.
lmsasu

2
@gWiz "Як функціональне програмування наступне велике?" - це наступна велика справа, тому що вона стає все більш широко прийнятою. "Наступна справа" - це не питання хронології. Це питання вищості (як спостерігається з поточного часу.) Неважливо, парадигма, незалежно від доброчесної, стара чи нова. Важливим є його всюдисущість. Старий, але практично невідомий для більшості, а зараз стає широко використовуваним? Наступне, що це тоді.
luis.espinal

Відповіді:


86

Так, він все ще дуже актуальний та чудовий ресурс.


3
... і не тільки для розробників Java. це справді чудове читання, і вам не потрібні спеціальні знання Java, щоб зрозуміти, про що він пише.
полярне сяйво

6
Все ще правда у 2015 році?
Робш

3
@robsch Так, все ще актуально.
Енді,

Все ще правда в 2020 році?
hyankov


17

Це дуже актуально. Я часто посилаюся на інших розробників до конкретних шаблонів з цієї книги, як посилання на його веб-сайт ( http://www.martinfowler.com/eaaCatalog/ ), таких як об’єкт передачі даних та рівень послуг .

Останнє - це те, про яке я думав, що його «вигадав», поки не побачив, що Фаулер вже писав про нього.


14
Не можна вигадувати візерунки, лише виявляти їх;)
квантбайт

10

Враховуючи, що відповіді на це питання наразі три роки, я вважав важливим підтвердити актуальність схем Мартіна Фаулера.

Книга з шаблонів дизайну GOF була вперше опублікована в 1994 році, і багато її зразків досі вважаються актуальними. Можливо, ми глибше зрозуміли їх і створили тонкі варіанти, але вони є основою будь-якого хорошого дизайну ОО.

Сучасні мови все частіше впроваджують деякі закулісні зразки, так що розробник теоретично не повинен знати про них (прикладом є зразок Iterator через yieldвисловлювання на C #). Але розробник краще їх знає.

Переходячи до книги Мартіна - це все ще актуально. Це правда, що багато бібліотек зараз підтримують ці шаблони у фоновому режимі, знову абстрагуючи їх від розробника, але знову ж таки вони є основою розробки прикладного програмного забезпечення для підприємств.

Вони вирішують проблеми, які виникають знову і знову, незалежно від мови, системи чи платформи.


6

Я не погоджуюсь із твердженням "упередженості щодо Java". Шаблони за своєю природою є мовно-агностичними. Вони визначаються як рішення загальних проблем. Примірник книги Фаулера має приклади як на Java, так і на C #, тому я не можу зрозуміти, звідки виникає "упередженість". Вони є найбільш поширеними об'єктно-орієнтованими мовами, і він говорить про об'єктно-орієнтовані рішення корпоративних проблем.

У книзі GoF є приклади Smalltalk та C ++. Чому вони настільки "упереджені" щодо Java та C #? Підказка: мов не існувало, коли ця книга була написана, але візерунки такі ж актуальні, як ніколи.


Ну, я не читав книгу, тому не знаю насправді ... Я не мав на увазі упередженість погано. Можливо, було б правильніше сказати "загальноприйняті об'єктно-орієнтовані мови, що використовуються на підприємстві", але я хлопець Java - коли я думаю "об'єктно-орієнтована мова, що використовується на підприємстві", я думаю, що Java.
Джек Сінглтон

Погоджено, але інші люди, які читають ваш коментар, можуть подумати, що ви його прочитали, і ухиляються, бо вони не люди Java. Я хотів уточнити.
duffymo

Це за своєю суттю неправда. Усі мови, які ви заявляєте, були імперативними мовами. Вам потрібні функціональні зразки у функціональних мовах, імперативні зразки в імперативних мовах тощо. Подумайте, шаблони, які покладаються на мутацію, не працюватимуть у чисто функціональній мові. Ймовірно, жодні шаблони, які ми зазвичай використовуємо, не працюють з prolog або Erlang. Тільки кажучи, в розумній мірі - це важливо.
Джоно


5

Дуже доречний і, звичайно, не прикутий до однієї мови. Станьте свідком майбутнього переходу Rails до Merb, в цілком реальному сенсі переходу від одного шаблону в POEAA (ActiveRecord) до іншого (DataMapper).

Багато інших концепцій, від стратегій ORM до управління сесіями, є як релевантними, так і мовно-агностичними. Я все ще переживаю, коли читаю це, наскільки великий вплив Фаулера. Він не винайшов тут усіх понять, але, безперечно, кодифікував і ввів імена цих ідей таким стислим та доступним способом, щоб зробити їх загальномовними мовами у всій галузі. Все ще важливо.


5

Абсолютно!

Книга класична. Я щойно перечитував його, щоб допомогти у роботі над системами бухгалтерського обліку, керованими подіями.

Фаулер переглядав деякі зразки з тих пір, і ви можете бачити його роботи, що тривають .


Посилання порушено.
Піовезан

виправлене посилання на нову сторінку, що містить статті про зразки
Енді Дент

2

Так, книга все ще актуальна. Ви можете забрати використані копії на Amazon, якщо вас турбує їх цінність, і продати їх тим же каналом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.