کتاب Data-Oriented Programming (برنامهنویسی دادهگرا: با بازنگری در دادهها پیچیدگی را کاهش دهید) در 15 فصل برنامهنویسی دادهگرا را همراه با مثال آموزش میدهد. این کتاب در 3 قسمت به صورت تخصصی به بحث DOP یا Data-Oriented Programming پرداخته است.
در ادامه مقدمهای از کتاب Data-Oriented Programming را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Data-Oriented Programming:
من از سال 2000 مهندس نرمافزار هستم. برای من به وضوح یک “قبل” و یک “پس از” 2012 وجود دارد. چرا 2012؟ زیرا سال 2012 سالی است که Clojure را کشف کردم. قبل از Clojure، برنامهنویسی کار من بود. بعد از Clojure، برنامهنویسی علاقه من بوده است.
چند سال پیش، من تعجب کردم که چه ویژگیهای Clojure باعث شده است که این زبان برنامهنویسی برای من منبع لذت بخش باشد. من سؤالاتم را با سایر اعضای انجمن Clojure در میان گذاشتم که همان علاقه من به آن را دارند. با هم متوجه شدیم که چیزی که در مورد Clojure بسیار خاص بود، ویژگیها نبود، بلکه اصول بود. زمانی که شروع به تقطیر اصول اصلی Clojure کردیم، متوجه شدیم که آنها در واقع برای سایر زبانهای برنامهنویسی قابل اجرا هستند.
از آن زمان بود که ایده این کتاب به وجود آمد. من میخواستم آنچه را که در مورد Clojure بسیار دوست دارم با جامعه جهانی توسعه دهندگان به اشتراک بگذارم. برای آن، به ابزاری برای بیان واضح ایدههایی نیاز دارم که عمدتاً برای توسعهدهندگانی که Clojure را نمیشناسند ناآشنا هستند. من همیشه عاشق اختراع داستان بودم، اما آیا دیالوگهای اختراع شده من توسط برنامه نویسان جدی گرفته میشود؟ مسلماً افلاطون با «گفتگوهای سقراطی» خود داستانهایی ابداع کرده بود تا آموزههای معلم خود را منتقل کند. به همین ترتیب، خاخام جودا حلوی داستان پادشاه خزرها را برای توضیح مبانی یهودیت اختراع کرده بود.
اما این دو کار در حوزه اندیشه است نه عمل!
سپس به یاد کتاب مدیریتی افتادم که چند سال پیش خوانده بودم، به نام هدف (نورث ریور، 2014). الیاهو گلدرات در این کتاب داستان یک مدیر کارخانه را ابداع میکند که به لطف اصولی که از تئوری محدودیتها سرچشمه میگیرد، موفق میشود کارخانه خود را نجات دهد. افلاطون، جودا هالوی و الیاهو گلدرات تمایل دیوانه وار من را برای نوشتن داستانی برای به اشتراک گذاشتن ایدهها مشروع کردند.
برنامهنویسی دادهگرا برای کمک به توسعهدهندگان برای کاهش پیچیدگی سیستمهایی که میسازند نوشته شده است. ایدههای این کتاب عمدتاً برای سیستمهایی که اطلاعات را دستکاری میکنند – سیستمهایی مانند برنامههای کاربردی فرانتاند، وب سرورهای پشتیبان یا خدمات وب، قابل استفاده هستند.
چه کسی باید این کتاب را بخواند؟
برنامهنویسی دادهگرا برای توسعهدهندگان frontend، backend و full stack با چند سال تجربه در یک زبان برنامهنویسی سطح بالا مانند Java، C#، C++، Ruby یا Python است. برای توسعهدهندگان برنامهنویسی شیگرا، برخی از ایدههای ارائه شده در این کتاب ممکن است آنها را از منطقه راحتی خود خارج کند و از آنها بخواهد که برخی از پارادایمهای برنامهنویسی را که با آن احساس راحتی میکنند، بیاموزند. برای توسعهدهندگان برنامهنویسی کاربردی، هضم این کتاب کمی سادهتر خواهد بود، اما باید شگفتیهای خوبی را نیز ارائه دهد.
نحوه سازماندهی کتاب Data-Oriented Programming: نقشه راه
این کتاب داستانی را بیان میکند که ارزش برنامهنویسی دادهگرا (DOP) و نحوه اعمال اصول آن در سیستمهای تولید واقعی را نشان میدهد. پیشنهاد من این است که داستان را دنبال کنید و فصلها را به ترتیب بخوانید. با این حال، اگر برخی از فصلها بیشتر از بقیه باعث کنجکاوی شما میشود، توجه داشته باشید که مطالب قسمت 1 و فصل 7 برای درک قسمت 2 و قسمت 3 مورد نیاز است.
در سراسر کتاب، ما از Lodash (https://lodash.com/) برای نشان دادن نحوه دستکاری دادهها با توابع عمومی استفاده میکنیم. اگر در حال خواندن یک قطعه کد هستید که از یک تابع Lodash استفاده میکند که با آن آشنا نیستید، میتوانید برای درک رفتار تابع به پیوست D مراجعه کنید.
بخش 1، انعطافپذیری، شامل شش فصل است و به چالشهای برنامهنویسی شیگرا سنتی (OOP) توجه میکند و برنامهنویسی دادهگرا (DOP) را در مرکز قرار میدهد و نحوه ساخت سیستمهای انعطافپذیر با استفاده از اصول اولیه DOP را نشان میدهد. فصلها به این ترتیب ردیف میشوند:
در فصل 1 کتاب Data-Oriented Programming، پیچیدگی برنامهنویسی شی گرا، به پیچیدگی OOP نگاه می کنیم. سپس، حماسه DOP ما آغاز می شود! به مکالمه بین تئو، یک توسعه دهنده ارشد، و همکار جدیدش، دیو، گوش دهید. برای تئو که با پیچیدگی OOP دست و پنجه نرم میکند احساس همدلی کنید و یک دلیل عالی برای امتحان یک الگوی برنامهنویسی متفاوت کشف کنید.
فصل 2 کتاب Data-Oriented Programming، جداسازی بین کد و داده، دوست ما تئو را در جستجوی راه حلی مییابد که پیچیدگی را کاهش دهد و انعطافپذیری سیستمها را افزایش دهد. کار او در خط است. جو را وارد کنید، یک توسعهدهنده باتجربه که پاسخی برای او دارد—DOP. کشف کنید که چگونه اصل DOP شماره 1 به کاهش پیچیدگی سیستمهای اطلاعاتی کمک میکند.
فصل 3 کتاب Data-Oriented Programming، دستکاری دادههای پایه، به بررسی این موضوع میپردازد که چگونه میتوانیم دادههای خود را از محصور کردن آن در صلبیت کلاس آزاد کنیم و با استفاده از اصل DOP شماره 2 آنها را آزادانه با توابع عمومی دستکاری کنیم. زنده باد انقلاب!
فصل 4 کتاب Data-Oriented Programming، مدیریت حالت، مدیریت حالت را با رویکرد چند نسخه ای بررسی میکند که به ما امکان میدهد با بازگرداندن سیستم به حالت قبلی به گذشته برگردیم، زیرا در DOP، حالت چیزی بیش از داده نیست. سفر در زمان واقعی است – در DOP!
فصل 5 کتاب Data-Oriented Programming، کنترل همزمانی پایه، به ما کمک میکند تا با اعمال یک استراتژی کنترل همزمان خوشبینانه، توان عملیاتی بالایی از خواندن و نوشتن را در یک سیستم همزمان بدست آوریم. نیازی به عینک رز رنگ نیست!
فصل 6 کتاب Data-Oriented Programming، آزمونهای واحد، یک فنجان جو را ارائه میدهد. . . با جو! دوست ما جو ثابت میکند که تست واحد کدهای دادهگرا بسیار آسان است که می توانید آن را در یک کافی شاپ حل کنید. یک فنجان بردارید و یاد بگیرید که چرا اینقدر ساده است – حتی برای جهشها! – همانطور که آزمایش واحد DOP را به صورت دستی با جو می نویسید. لوبیا باحالی است!
بخش 2، مقیاس پذیری، چگونگی ساخت یک سیستم DOP در مقیاس را با تمرکز بر اعتبارسنجی دادهها، محیطهای چند رشتهای، مجموعههای بزرگ داده، و دسترسی به پایگاه داده و خدمات وب نشان میدهد. آیا باید سیستم خود را بزرگ کنید؟ مشکلی نیست!
فصل 7 کتاب Data-Oriented Programming، اعتبار سنجی دادههای پایه، به ما میآموزد که چگونه اطمینان حاصل کنیم که دادههایی که وارد و خارج از سیستم ما میشوند، فقط در صورت امکان معتبر هستند. . . زیرا همانطور که جو میگوید، شما مجبور نیستید دادهها را در DOP تأیید کنید، اما در صورت نیاز میتوانید. اعتبار سنجی یا عدم اعتبار مسئله این است!
فصل 8 کتاب Data-Oriented Programming، کنترل همزمانی پیشرفته، به این موضوع میپردازد که چگونه، پس از اینکه دوستمان جو جزئیات پیاده سازی مکانیزم اتم را تجزیه کرد، ما یاد میگیریم که کل وضعیت سیستم را به روشی ایمن بدون استفاده از هیچ قفلی مدیریت کنیم. شما پیچیدگی را از اتم نخواهید فهمید – بالا و اتم!
فصل 9 کتاب Data-Oriented Programming، ساختارهای داده پایدار، به یک محیط آکادمیک تر منتقل می شود، جایی که دوست ما جو، جزئیات داخلی یک روش امن تر و مقیاس پذیرتر را برای حفظ تغییرناپذیری دادهها و همچنین نحوه اجرای کارآمد آن، بدون توجه به اندازه داده، آشکار میکند. کلاس در حال حاضر در جلسه است!
فصل 10 کتاب Data-Oriented Programming، عملیات پایگاه داده، به ما میآموزد که چگونه دادهها را از پایگاه داده به گونهای نمایش دهیم، به آنها دسترسی پیدا کنیم و آنها را دستکاری کنیم، به گونه ای که انعطافپذیری بیشتری ارائه میدهد، و – حدس زدید! – پیچیدگی کمتری دارد.
فصل 11 کتاب Data-Oriented Programming، خدمات وب، به ما اجازه میدهد تا سادگی ارتباط با سرویسهای وب را کشف کنیم. ما یاد خواهیم گرفت که جو وقتی میگوید: «ما باید درون سیستمهایمان را مانند بیرون بسازیم، چه میگوید».
بخش 3، قابلیت نگهداری، تا تکنیکهای DOP اعتبارسنجی دادههای پیشرفته، چندشکلی، کدهای فصیح و تکنیکهای اشکالزدایی، که زمانی که در یک تیم کار میکنید، حیاتی هستند. به تیم خوش آمدید!
فصل 12 کتاب Data-Oriented Programming، اعتبار سنجی دادههای پیشرفته، به ما امکان میدهد شکل چیزهای آینده را کشف کنیم. در اینجا، شما یاد خواهید گرفت که چگونه دادهها را هنگامی که در داخل سیستم جریان مییابد تأیید کنید، به شما این امکان را میدهد تا با تعریف شکل مورد انتظار آرگومانهای تابع و مقادیر بازگشتی، توسعه را آسان کنید.
فصل 13 کتاب Data-Oriented Programming، چندشکلی، ما را همراه با تئو و دیو به کلاسی در حومه شهر میبرد – مکانی مناسب برای بازی با حیوانات و یادگیری در مورد چندشکلی بدون اشیا از طریق چند روش.
فصل 14 کتاب Data-Oriented Programming، دستکاری پیشرفته دادهها، به ما اجازه میدهد تا ببینیم که چگونه دیو و تئو توصیههای حکیم جو را برای تبدیل کد خستهکننده به کدی گویا در حالی که ابزار دستکاری دادههای خود را ایجاد می کنند، به کار میگیرند. “گاری را جلوی اسب قرار دهید.” – جواهری دیگر از جو!
فصل 15 کتاب Data-Oriented Programming، اشکالزدایی، دیو و تئو را برای آخرین “هورا” به موزه میبرد زیرا آنها راه حلی نوآورانه برای بازتولید و رفع اشکال ایجاد میکنند. این کتاب همچنین دارای چهار پیوست است:
ضمیمه A، اصول برنامهنویسی دادهگرا، هر یک از چهار اصل DOP را که در قسمت 1 به تفصیل پوشش داده شده اند، خلاصه میکند و نشان میدهد که چگونه هر اصل می تواند برای هر دو زبان FP و OOP اعمال شود. همچنین مزایای هر اصل و هزینههای پایبندی به هر یک را شرح میدهد.
ضمیمه B، دسترسی به دادههای عمومی در زبانهای تایپ ایستا، راههای مختلفی را برای ارائه دسترسی به دادههای عمومی در زبانهای برنامهنویسی با تایپ ایستا مانند جاوا و سیشارپ ارائه میدهد.
ضمیمه C، برنامهنویسی دادهگرا: حلقه ای در زنجیره الگوهای برنامهنویسی، ایدهها و روندهایی را که DOP الهام گرفته اند را بررسی میکند. ما به اکتشافاتی نگاه می کنیم که آن را در سیستمهای تولید در مقیاس قابل اجرا میکند.
ضمیمه D، مرجع Lodash، توابع Lodash را که در سراسر کتاب استفاده میکنیم، خلاصه میکند تا نحوه دستکاری دادهها با توابع عمومی بدون جهش آنها را نشان دهد.
سرفصلهای کتاب Data-Oriented Programming:
- brief contents
- contents
- forewords
- preface
- acknowledgments
- about this book
- about the author
- about the cover illustration
- dramatis personae
- Part 1—Flexibility
- 1 Complexity of object- oriented programming
- 2 Separation between code and data
- 3 Basic data manipulation
- 4 State management
- 5 Basic concurrency control
- 6 Unit tests
- Part 2—Scalability
- 7 Basic data validation
- 8 Advanced concurrency control
- 9 Persistent data structures
- 10 Database operations
- 11 Web services
- Part 3—Maintainability
- 12 Advanced data validation
- 13 Polymorphism
- 14 Advanced data manipulation
- 15 Debugging
- Appendix A—Principles of data-oriented programming
- A.1 Principle 1: Separate code from data
- A.2 Principle 2: Represent data with generic data structures
- A.3 Principle 3: Data is immutable
- A.4 Principle 4: Separate data schema from data representation
- Conclusion
- Appendix B—Generic data access in statically-typed languages
- B.1 Dynamic getters for string maps
- B.2 Value getters for maps
- B.3 Typed getters for maps
- B.4 Generic access to class members
- Summary
- Appendix C—Data-oriented programming: A link in the chain of programming paradigms
- C.1 Time line
- C.2 DOP principles as best practices
- C.3 DOP and other data-related paradigms
- Summary
- Appendix D—Lodash reference
- index
جهت دانلود کتاب Data-Oriented Programming میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.