Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Beautiful Architecture

Beautiful Architecture

Leading Thinkers Reveal the Hidden Beauty in Software Design
توسط Diomidis Spinellis 2009 426 صفحات
3.41
100+ امتیازها
گوش دادن

نکات کلیدی

1. Emacs: ویرایشگر متنی قدرتمند و قابل توسعه با پیروان وفادار

Emacs به همان اندازه که خورشید در ظهر بر ستارگان می‌درخشد، بر سایر نرم‌افزارهای ویرایش برتری دارد. این فقط بزرگ‌تر و روشن‌تر نیست؛ بلکه به سادگی همه چیز دیگر را ناپدید می‌کند.

تنوع بی‌نظیر. Emacs بیش از یک ویرایشگر متن است؛ این یک محیط کامل محاسباتی است. با بیش از 1.1 میلیون خط کد Emacs Lisp، امکاناتی از ویرایش متن ساده تا اشکال‌زدایی برنامه‌ها، خواندن ایمیل، مرور دایرکتوری‌ها و حتی حل مسائل جبر نمادین را ارائه می‌دهد.

تجربه کاربری منحصر به فرد. برخلاف ویرایشگرهای سنتی، Emacs برای یک بار راه‌اندازی و سپس در حال اجرا ماندن طراحی شده است. کاربران می‌توانند چندین فایل را در یک جلسه ویرایش کنند و کار خود را به راحتی در دسترس نگه دارند. رابط کاربری بر اساس سه مفهوم کلیدی ساخته شده است:

  • فریم‌ها: اصطلاح Emacs برای پنجره‌ها در یک رابط کاربری گرافیکی
  • پنجره‌ها: تقسیمات فریم‌ها برای نمایش محتوا
  • بافرها: محفظه‌هایی برای متن قابل ویرایش که ممکن است با فایل‌ها مرتبط باشند یا نباشند

ویرایش همه چیز. یکی از قدرتمندترین ویژگی‌های Emacs این است که تقریباً تمام محتوا، از جمله پیام‌های راهنما، نتایج جستجو و لیست‌های دایرکتوری، در بافرهای قابل ویرایش ارائه می‌شود. این به کاربران اجازه می‌دهد تا اطلاعات را به صورت انعطاف‌پذیر دستکاری و استفاده مجدد کنند، و Emacs را برای وظایف پیچیده دستکاری متن به طور منحصر به فردی مناسب می‌سازد.

2. معماری Emacs: الگوی Model-View-Controller با Lisp در هسته آن

معماری Emacs از الگوی Model-View-Controller که به طور گسترده برای برنامه‌های تعاملی استفاده می‌شود، پیروی می‌کند.

تجزیه معماری. معماری Emacs را می‌توان به سه جزء اصلی تقسیم کرد:

  • مدل: بافر، که متن و متادیتای مرتبط را نگه می‌دارد
  • نما: موتور بازنمایی مجدد، که مسئول به‌روزرسانی صفحه نمایش است
  • کنترلر: کد Emacs Lisp، که ورودی کاربر را مدیریت و مدل را دستکاری می‌کند

بافر به عنوان مدل. قلب مدل Emacs بافر است، یک رشته ساده و مسطح با کاراکترهای خط جدید که انتهای خطوط را علامت‌گذاری می‌کنند. بافرها از عملیات مختلفی پشتیبانی می‌کنند:

  • درج و حذف متن
  • استخراج بخش‌هایی به عنوان رشته‌ها
  • جستجوی تطابق‌های رشته‌های دقیق یا عبارات منظم
  • پشتیبانی از مجموعه‌های کاراکتری متعدد
  • ثبت‌نام لغو برای معکوس کردن تغییرات

بازنمایی مجدد خودکار. جزء نمای Emacs، موتور بازنمایی مجدد، صفحه نمایش را به طور خودکار بدون راهنمایی صریح از کد Lisp به‌روزرسانی می‌کند. این امر توسعه افزونه‌ها را ساده می‌کند و به برنامه‌نویسان اجازه می‌دهد تا بر دستکاری مدل تمرکز کنند بدون اینکه نگران به‌روزرسانی‌های نمایش باشند.

3. Emacs Lisp: موتور محرک توسعه‌پذیری و سفارشی‌سازی Emacs

Emacs Lisp تعاملی است. شما می‌توانید تعاریف و عبارات را در یک بافر Emacs وارد کرده و بلافاصله آن‌ها را ارزیابی کنید.

زبان توسعه قدرتمند. Emacs Lisp هسته توسعه‌پذیری Emacs است. این زبان چندین ویژگی کلیدی ارائه می‌دهد:

  • بوروکراسی کم: سفارشی‌سازی‌های کوچک به راحتی می‌توانند به فایل .emacs اضافه شوند
  • توسعه تعاملی: تغییرات می‌توانند بدون راه‌اندازی مجدد Emacs اعمال و ارزیابی شوند
  • شهروندی درجه یک: کد Lisp نوشته شده توسط کاربر به همان دسترسی و امتیازات کد داخلی دسترسی دارد
  • زبان برنامه‌نویسی کامل: مناسب برای نوشتن برنامه‌های بزرگ و پیچیده
  • ایمنی: کد Lisp معیوب نمی‌تواند Emacs را خراب کند، که به آزمایش و تجربه تشویق می‌کند
  • مستندسازی آسان: توابع می‌توانند شامل docstringها برای کمک فوری باشند

معایب و مبادلات. با وجود قدرتش، Emacs Lisp دارای برخی محدودیت‌ها است:

  • سیستم ماژول ندارد: قراردادهای نام‌گذاری برای جلوگیری از تضاد بین بسته‌ها استفاده می‌شود
  • دید جهانی: تمام توابع در یک بسته برای سایر بسته‌ها قابل مشاهده هستند
  • سیستم شیء ندارد: این می‌تواند برخی از پارادایم‌های برنامه‌نویسی را چالش‌برانگیزتر کند

4. ویژگی‌گرایی خزنده: یک قوت، نه یک ضعف، در طراحی Emacs

ویژگی‌گرایی خزنده Emacs نتیجه مستقیم معماری آن است.

چرخه رشد ویژگی. معماری Emacs رشد ارگانیک ویژگی‌ها را تشویق می‌کند:

  1. پیاده‌سازی آسان ایده‌های جدید به دلیل مانع ورود پایین
  2. سفارشی‌سازی‌های شخصی به فایل‌های .emacs اضافه می‌شوند
  3. سفارشی‌سازی‌های محبوب به بسته‌های قابل اشتراک تبدیل می‌شوند
  4. بهترین بسته‌ها در توزیع استاندارد Emacs گنجانده می‌شوند

مدیریت پیچیدگی. با وجود افزودن مداوم ویژگی‌ها، Emacs موفق به جلوگیری از غیرقابل مدیریت شدن می‌شود:

  • پیچیدگی رابط کاربری با اجازه دادن به کاربران برای کشف ویژگی‌ها به تدریج کاهش می‌یابد
  • قابلیت نگهداری با در نظر گرفتن Emacs به عنوان مجموعه‌ای از بسته‌ها به جای یک کل یکپارچه حفظ می‌شود
  • زبان Lisp به عنوان یک مرز انتزاعی عمل می‌کند، که به کد اصلی C اجازه می‌دهد بدون شکستن سازگاری تکامل یابد

توسعه جامعه‌محور. رشد ویژگی‌های Emacs عمدتاً یک فرآیند مردمی است که منعکس‌کننده علایق و نیازهای کاربران است. این اطمینان می‌دهد که ویژگی‌های جدید واقعاً مفید و به خوبی آزمایش شده‌اند قبل از اینکه بخشی از توزیع استاندارد شوند.

5. Emacs در مقابل سایر معماری‌ها: مقایسه با Eclipse و Firefox

معماری Eclipse چیزی نیست جز باز، زیرا افزونه‌ها تقریباً تمام عملکردهای مهم را فراهم می‌کنند.

Eclipse: قدرتمند اما پیچیده. Eclipse یک معماری افزونه‌ای ارائه می‌دهد که عملکرد گسترده‌ای دارد اما دارای معایب است:

  • توسعه افزونه‌ها ایمن نیست؛ اشکالات می‌توانند کل سیستم را خراب کنند
  • نوشتن افزونه‌ها نیاز به برخورد با رابط‌های پیچیده دارد
  • کد پایه قابل توجهی حتی برای افزونه‌های ساده مورد نیاز است

Firefox: یک راه میانه. معماری Firefox برخی شباهت‌ها با Emacs دارد:

  • از JavaScript استفاده می‌کند، یک زبان پویا و تفسیری مانند Emacs Lisp
  • مدیریت نمایش خودکار را فراهم می‌کند
  • اجازه توسعه افزایشی افزونه‌ها را می‌دهد

مزیت Emacs. معماری Emacs ترکیبی منحصر به فرد از قدرت و سادگی ارائه می‌دهد:

  • محیط اجرای ایمن برای افزونه‌ها
  • مانع ورود پایین برای سفارشی‌سازی‌های ساده
  • توانایی مقیاس‌پذیری به افزونه‌های پیچیده و کامل
  • رابط کاربری سازگار برای هر دو عملکرد داخلی و ایجاد شده توسط کاربر

6. قدرت ترکیب‌پذیری در رابط‌های کاربری

چقدر آسان است که نتایج یک فرمان به عنوان ورودی برای فرمان دیگری استفاده شود؟ آیا فرمان‌های رابط با یکدیگر ترکیب می‌شوند؟ یا نتایج پس از نمایش به بن‌بست رسیده‌اند؟

رابط ترکیب‌پذیر Emacs. Emacs در اجازه دادن به کاربران برای ترکیب و استفاده مجدد از خروجی فرمان‌ها برتری دارد:

  • تمام محتوا در بافرهای قابل ویرایش ارائه می‌شود
  • فرمان‌های استاندارد دستکاری متن برای همه انواع محتوا اعمال می‌شوند
  • نتایج یک فرمان به راحتی می‌توانند به عنوان ورودی برای فرمان دیگری خدمت کنند

مزایای ترکیب‌پذیری. این رویکرد چندین مزیت ارائه می‌دهد:

  • انعطاف‌پذیری بیشتر در نحوه تعامل کاربران با داده‌ها
  • توانایی ایجاد جریان‌های کاری پیچیده از بلوک‌های ساختمانی ساده
  • تشویق به آزمایش و کشف راه‌های جدید برای استفاده از سیستم

مقایسه با سایر سیستم‌ها. بسیاری از برنامه‌های مدرن، مانند Microsoft Visual Studio، محدودیت‌هایی در نحوه تعامل کاربران با خروجی فرمان‌ها دارند، که انعطاف‌پذیری و پتانسیل حل خلاقانه مشکلات را کاهش می‌دهد.

7. ارزیابی زبان‌های توسعه و امکانات افزونه

آیا زبان توسعه راه ترجیحی برای پیاده‌سازی بیشتر ویژگی‌های جدید برای برنامه است؟

سوالات کلیدی برای ارزیابی توسعه‌پذیری:

  1. چه رابط‌هایی برای استفاده افزونه‌ها در دسترس هستند؟
  2. آیا آن‌ها به اندازه کافی ساده هستند تا توسعه سریع را امکان‌پذیر کنند؟
  3. آیا توسعه‌دهندگان می‌توانند در سطح بالایی از انتزاع، نزدیک به حوزه مشکل کار کنند؟
  4. چگونه داده‌های برنامه از کد افزونه معیوب محافظت می‌شوند؟

رویکرد Emacs. Emacs در این زمینه‌ها برتری دارد:

  • Emacs Lisp برای پیاده‌سازی بیشتر ویژگی‌های جدید استفاده می‌شود
  • زبان توسعه به تمام عملکردهای داخلی Emacs دسترسی کامل دارد
  • انتزاع سطح بالای Lisp توسعه سریع را امکان‌پذیر می‌کند
  • مفسر Lisp یک محیط اجرای ایمن فراهم می‌کند

اهمیت افزونه‌های درجه یک. هنگامی که زبان توسعه یک برنامه قدرتمند و به خوبی یکپارچه باشد، یک اکوسیستم پرجنب‌وجوش از عملکردهای ایجاد شده توسط کاربر را تشویق می‌کند. این می‌تواند به استفاده‌های غیرمنتظره و نوآورانه از برنامه منجر شود، فراتر از آنچه که خالقان اصلی آن تصور می‌کردند.

آخرین به‌روزرسانی::

نقد و بررسی

3.41 از 5
میانگین از 100+ امتیازات از Goodreads و Amazon.

کتاب معماری زیبا نقدهای متفاوتی دریافت کرده است و به‌طور میانگین امتیاز 3.41 از 5 را کسب کرده است. برخی از خوانندگان پوشش جامع اصول معماری نرم‌افزار و مثال‌های واقعی از پروژه‌های مختلف را تحسین می‌کنند. آن‌ها از دیدگاه‌های متخصصان صنعت و گستردگی موضوعات مطرح‌شده قدردانی می‌کنند. با این حال، برخی دیگر کتاب را به دلیل کیفیت ناهماهنگ در فصل‌ها، کمبود نمودارها و اطلاعات گاهی قدیمی مورد انتقاد قرار می‌دهند. برخی آن را بیش از حد پرحرف و بدون عمق کافی می‌دانند، در حالی که دیگران به تنوع دیدگاه‌ها در مورد تصمیمات معماری و موازنه‌ها ارزش می‌نهند. ساختار کتاب که شامل مقالات مستقل است، هم به‌عنوان نقطه قوت و هم ضعف دیده می‌شود.

درباره نویسنده

دیومیدیس اسپینلیس یک دانشمند کامپیوتر یونانی و نویسنده‌ای است که به خاطر کارهایش در مهندسی نرم‌افزار و معماری سیستم شناخته می‌شود. دیومیدیس اسپینلیس به طور گسترده‌ای در موضوعات مرتبط با کیفیت کد، طراحی نرم‌افزار و توسعه منبع باز نوشته است. او استاد مهندسی نرم‌افزار در دانشگاه اقتصاد و تجارت آتن است و به پروژه‌های منبع باز متعددی کمک کرده است. اسپینلیس به خاطر تحقیقات و نوشته‌هایش، از جمله جایزه آکادمیک بنیاد بودوساکی، شناخته شده است. کتاب‌های دیگر او شامل "خواندن کد" و "کیفیت کد" می‌باشد. اسپینلیس به خاطر رویکرد عملی‌اش به توسعه نرم‌افزار و توانایی‌اش در توضیح مفاهیم پیچیده به شیوه‌های قابل فهم شناخته می‌شود.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Unlock Unlimited Listening
🎧 Listen while you drive, walk, run errands, or do other activities
2.8x more books Listening Reading
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jan 25,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →