Enterprise Software Development
528 subscribers
76 photos
1 video
15 files
306 links
Download Telegram
حدود بیست سال قبل آقای Martin Fowler کتاب معروف Refactoring خود را منتشر کرد. این روزا وی مشغول نوشتن نسخه ی دوم کتاب خود در مورد Refactoring می باشد. در این لینک میتوانید مصاحبه ی وی در رابطه با نسخه جدید کتاب را مطالعه کنید :

https://www.thoughtworks.com/careers/perspectives/martin-interview-part1
در کتاب Working Effectively With legacy code نویسنده به توضیح واژه ی "Legacy" و سیستم های Legacy میپردازد :

To me, legacy code is simply code without tests. I’ve gotten some grief for this definition. What do tests have to do with whether code is bad? To me, the answer is straightforward, and it is a point that I elaborate throughout the book:

Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.
Enterprise Software Development
https://www.greaterthancode.com/podcast/073-driven-by-need-guided-by-example-with-dan-north/
در این پادکست آقای Dan North ( خالق BDD) اشاره می کند که اگر قرار باشد به عقب برگردد و در مورد BDD چیزی را تغییر دهد، نام را تغییر می دهد و آن را Example-Guided Development نامگذاری میکند :

if I could change anything about behavior-driven development, I would say that the word ‘driven’ is wrong. And I think the word ‘driven’ in test-driven development is wrong as well. Behavior isn’t what drives the development. A business need, some customer need, is what drives the development.

The reason I’m doing it is that what guides the thing I build, that’s the examples. So BDD, if I got another crack at it, I’d call it example-guided development.
سرویس Uber سال گذشته در آمارهای خود اعلام کرده است که به طور متوسط 10 میلیون پیام در ثانیه را پردازش می کند (حدودا روزانه 1 تریلیون). همچنین روزانه با حجم حدودا 1 پتابایت داده سر و کار دارد. در این ویدیو با معماری و زیرساخت Uber در راستای مدیریت این حجم درخواست آشنا شوید :
https://www.youtube.com/watch?v=K-fI2BeTLkk
سایت های بزرگ و معروف دنیا ، از چه تکنولوژی هایی استفاده میکنند؟ در سایت Stack Share می توانید تکنولوژی های مورد استفاده (اعم از زبان برنامه نویسی، پایگاه داده، ابزارهای DevOps، ابزارهای HelpDesk و ...) در شرکت های مختلف را ببینید :

https://stackshare.io/stacks
در این ویدیو معماران ارشد شرکت بیمه ی Liberty Mutual در مورد تجربه خود در رابطه با تغییر ساختار یک نرم افزار Monolithic به یک نرم افزار مبتنی بر مایکروسرویس ها با استفاده از DDD، CQRS و Event Sourcing صحبت میکنند :

https://www.infoq.com/presentations/liberty-monolith-ddd-microservices
■ A professional doesn’t ship code he or she is uncertain of.
■ A professional writes clean, flexible code that works.
■ A professional is on time.

TDD’s disciplines are a huge help in meeting professionalism’s requirements and that it would therefore be unprofessional of me not to follow them.

- Robert C. Martin
شرکت Uber برای Deploy کردن مایکروسرویس های خود از سیستم مخصوص خود به نام MicroDeploy (اختصارا μDeploy) استفاده میکند. در این مقاله مکانیزم کار μDeploy توضیح داده شده است :

https://eng.uber.com/micro-deploy/
Clean Coding Tip
■ Interviewer : it's often what managers say is that clean code is too expensive or kind of the forward writing tests that cover all the code.

■ Robrt C.Martin : [Laugh] I would respond that I can make it as cheap as you'd like and deliver it on any schedule you want as long as it doesn't have to work !

And actually it's not managers saying that. You might find some low-level managers saying stuff like that but you talk to the CEO of a company you ask that CEO "you thought you want your software to be high quality?" and he's gonna say "what I thought that it already was of course ! I want it to be high quality I'm betting my business on it !"

The little manager off in the corner who's worried about the schedule is going to say something silly like "oh oh we don't really have time to write tests". Of course you've got time to write tests you don't have time not to write tests. How much debugging do you want to do? how much chasing down horrible bugs? do you want to do or correcting corrupted databases?
پلتفرم LMAX یک پلتفرم مالی (خرده فروشی) می باشد و با چالش پردازش سفارشات زیاد با تاخیر بسیار کم مواجه است. سیستم LMAX با یک معماری مناسب توانسته است حدود 6 میلیون سفارش در ثانیه را با استفاده از تنها یک Thread مدیریت کند. پردازشگر Business-Logic سیستم در Memory و با رویکرد Event Sourcing اجرا می شود.

مقاله زیر توسط Martin Fowler در مورد معماری LMAX جالب و خواندنی است :

https://martinfowler.com/articles/lmax.html
Enterprise Software Development
2018_state_of_testing_report_1.1.pdf
نتایج نظرسنجی سایت Practitest که بین 1500 متخصص QA و تست نرم افزار برگزار شده است