Обучающие видео » Компьютерные видеоуроки и обучающие интерактивные DVD » Программирование (видеоуроки)
Developing Extensible SoftwareГод выпуска: 2014
Производитель: Pluralsight
Сайт производителя:
http://pluralsight.com/Автор: Miguel Castro
Продолжительность: 3h 46m
Тип раздаваемого материала: Видеоклипы
Язык: Английский
Описание: In today's competitive world of software development, using methodologies such as Agile lets us get products to market quicker and in a controlled fashion, but that's not enough. Applications need to be able to grow without being totally rewritten. Sure, there eventually comes a time when every app needs a major overhaul, but if applications are written to be extensible in the first place, the overhaul can be performed in pieces; and in the meantime, new features can be added or existing features changed without bringing the app down. This "extensibility" in our design is becoming more and more important every day as software shops compete with each other for work and even with other countries. There have been many articles and design documents written on things like inversion of control in the UI tiers. Many books have dedicated chapters to injecting objects into MVC controllers or WPF ViewModels, but not many have focused on the meat of a system, the business tiers. These are the tiers that are accessible to the UI of a system, more than one in many cases. And these are the tiers that can be most volatile and subject to change and enhancement. In this course, I'll show you some of my favorite extensibility designs and techniques which will let you write software in building blocks that can be connected and interconnected in different ways. I'll keep most of my focus on the business tiers, which despite the lack of user-centric visual glamour, is where you get to exercise the most creativity. You'll be able to roll out applications and continuously add or change things without affecting the core infrastructure in place. To me, this not only makes the software better, but more fun to write!
В сегодняшнем конкурентоспособном мире разработки программного обеспечения , с помощью методов, таких как Agile позволяет нам получить продукты на рынок быстрее и в управляемом режиме , но этого не достаточно . Приложения должны иметь возможность расти , не будучи полностью переписан. Конечно, есть в конце концов наступает момент, когда каждое приложение нуждается в капитальном ремонте , но если приложения написаны с учетом возможности расширения , в первую очередь , капитальный ремонт может быть выполнена в части, и в то же время , новые возможности могут быть добавлены или существующие функции изменены без привлечения приложение вниз . Это " расширяемость " в нашей дизайн становится все более и более важным, каждый день, как программные магазины конкурируют друг с другом на работу и даже с другими странами . Там было много статей и проектные документы , написанные на таких вещах, как инверсии контроля в ярусах пользовательского интерфейса. Многие книги посвятили главы для инъекционных предметы в контроллерах MVC или WPF ViewModels , но не многие из них сосредоточены на мясо системы , бизнес- яруса. Это ярусы , которые доступны в пользовательском интерфейсе системы , более чем один из многих случаях . И это ярусы , которые могут быть наиболее неустойчивыми и могут быть изменены и аксессуарам. В этом, конечно, я покажу вам некоторые из моих любимых конструкций и методов, которые позволят вам писать программное обеспечение в строительных блоков, которые могут быть подключены и соединенных между собой по-разному расширяемости . Я буду держать большую часть своего внимания на бизнес- уровней , которые , несмотря на отсутствие ориентированных на пользователя визуального гламура , где вы получите осуществлять наиболее творчество. Вы сможете развернуть приложения и постоянно добавлять или изменять вещи , не затрагивая основную инфраструктуру на месте. Для меня это не только делает программное обеспечение лучше, но более интересно писать !
[spoiler="Содержание"]
Код: │ developing-extensible-software.zip
│
├───01. Welcome and Course Description
│ 01. The Course.mp4
│ 02. Course Agenda.mp4
│
├───02. Importance of Extensibility
│ 01. Not Just For Plug-Ins.mp4
│ 02. Danger Beware Of Explosion.mp4
│ 03. It's All About Decoupledness and Abstraction.mp4
│ 04. Commerce Engine Case-Study.mp4
│ 05. Commerce Engine Client Walkthrough.mp4
│ 06. Commerce Engine Walkthrough.mp4
│ 07. Why Was That Bad .mp4
│
├───03. Abstraction and Dependency Injection
│ 01. DI Extensibility's First Step.mp4
│ 02. Installing the DI Container.mp4
│ 03. Abstracting Out the Data Repository.mp4
│ 04. Setting Up the Container Registration-and-Resolve.mp4
│ 05. DI'ing Up the Other Classes.mp4
│ 06. DI Is Only the Beginning.mp4
│
├───04. Implementing Providers
│ 01. What Are Providers .mp4
│ 02. Envisioning the Configuration.mp4
│ 03. Modifying the Provider Classes.mp4
│ 04. Refactoring Out to New Projects.mp4
│ 05. Setting Up the Configuration Classes.mp4
│ 06. Finishing and Installing Configuration Classes.mp4
│ 07. Fix Up Dependencies in the CommerceManager Class.mp4
│ 08. Plug Providers Into the CommerceManager Class.mp4
│ 09. Fixing the Client and Running Test.mp4
│ 10. How Am I Going to Reachieve Testability.mp4
│ 11. Writing the Configuration Factory.mp4
│ 12. Injecting the Configuration Factory.mp4
│ 13. Summary.mp4
│
├───05. Implementing Modules
│ 01. What Are Modules .mp4
│ 02. Allowing Engine Users to Add Functionality.mp4
│ 03. How the Module Pattern Works.mp4
│ 04. Where I Want to Place an Extensibility Point in the Engine.mp4
│ 05. Setting Up the Commerce Events and Associated Code.mp4
│ 06. Writing the Module Interface Type.mp4
│ 07. Adding Definition to the Configuration Factory.mp4
│ 08. Adding More Config Classes.mp4
│ 09. Read In Module Information and Initialize.mp4
│ 10. Calling Module Event From CommerceManager.mp4
│ 11. Writing and Installing the Item Promotion Module.mp4
│ 12. Writing and Installing the Sku Miner Module.mp4
│ 13. Modules More or Less Tied to the Hosting App.mp4
│ 14. Giving a Module Access to Hosting App Resources.mp4
│ 15. Modifying the Module to Use Its Own Standalone Resources.mp4
│ 16. Writing a Unit Test for the Sku Miner Module.mp4
│ 17. Writing a Second Unit Test for the More Coupled Sku Miner Module.mp4
│ 18. Unit Testing the CommerceManager Class.mp4
│
├───06. Advanced Module Usage
│ 01. Adding Arguments for Modules.mp4
│ 02. What I Want the Config to Look Like.mp4
│ 03. Using the Provider Settings Collection Instead.mp4
│ 04. Using the Provider Settings Parameters.mp4
│ 05. Accepting the Parameter List into the Modules.mp4
│ 06. Modifying the Module to use Paramters.mp4
│ 07. Checking for Unknown Parameters.mp4
│ 08. Variation of the Module Pattern.mp4
│ 09. Removing All Config Stuff.mp4
│ 10. Adding the Custom Attribute and App Setting.mp4
│ 11. Modifying the Configuration Factory.mp4
│ 12. Finishing Up the Configuration Factory and Running.mp4
│ 13. Use Modules to Break Out Every Engine Step.mp4
│
├───07. Pipelines
│ 01. What is a Pipeline .mp4
│ 02. The ASP.NET Pipeline.mp4
│ 03. The WCF Pipeline.mp4
│ 04. The Commerce Engine Pipeline.mp4
│ 05. Discuss How to Break out the Steps.mp4
│ 06. Starting the Validate-Customer Event.mp4
│ 07. Calling the Validate-Customer Event.mp4
│ 08. Writing the Validate-Customer Module.mp4
│ 09. Installing the Module and Running.mp4
│ 10. The Rest of the Event-Args Classes.mp4
│ 11. Updating the CommerceEvents Class.mp4
│ 12. Include the Rest of the Modules.mp4
│ 13. Adjusting the CommerceManager class.mp4
│ 14. Installing the Rest of the Modules and Running.mp4
│ 15. Setting the Scene for the Pipeline Framework.mp4
│ 16. Creating the CommerceContext Class.mp4
│ 17. Creating the CommercePipelineEvents Class.mp4
│ 18. Writing the Validate Customer Pipeline Module.mp4
│ 19. Setting Up the Pipeline Config and Add Module.mp4
│ 20. Adding and Installing the Other Modules.mp4
│ 21. Modifying the CommerceManager to Kick Off the Pipeline.mp4
│ 22. Mashing the Two Patterns Together.mp4
│
├───08. Procedural Overriding
│ 01. What is Procedural Overriding .mp4
│ 02. Walk Through the Current Engine.mp4
│ 03. Creating the Default Functionality Class.mp4
│ 04. Setting Up the CommerceManager Properties.mp4
│ 05. Using the Default Classes From CommerceManager.mp4
│ 06. Fixing the Client and Running.mp4
│ 07. Writing the Replacement Classes Into Client.mp4
│ 08. Injecting the Replacement Classes Into Client.mp4
│ 09. Describing a Real-World Problem Space For This Pattern.mp4
│ 10. Writing the Contructor Resolver Class.mp4
│ 11. Replacing the Hardcoded Behavior With the Resolver.mp4
│ 12. Writing a New Constructor Resolver.mp4
│ 13. Using the New Constructor Resolver.mp4
│
├───09. Using MEF
│ 01. Why and When to Use MEF.mp4
│ 02. Adding MEF and Removing Unity.mp4
│ 03. Removing Instantiation From ConfigurationFactory Class.mp4
│ 04. Building the MEF Catalogs.mp4
│ 05. Creating the MEF Container.mp4
│ 06. Registering the Store Repository.mp4
│ 07. Marking All Other Exports.mp4
│ 08. Resolving the CommerceManager.mp4
│ 09. Resolving Into the ConfigurationFactory Class.mp4
│ 10. Testing Without Modules.mp4
│ 11. Initializing Modules and Running.mp4
│
└───10. Conclusion
01. In Conclusion.mp4
[/spoiler]
Файлы примеров: присутствуют
Формат видео: MP4
[spoiler="audio\video"]
General
Complete name : D:\02. What I Want the Config to Look Like.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 8.81 MiB
Duration : 2mn 8s
Overall bit rate mode : Variable
Overall bit rate : 575 Kbps
Encoded date : UTC 2014-02-04 03:28:25
Tagged date : UTC 2014-02-04 03:28:34
Writing application : HandBrake 0.9.8 2012071700
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile :
[email protected]Format settings, CABAC : No
Format settings, ReFrames : 2 frames
Format settings, GOP : M=1, N=50
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2mn 8s
Duration_FirstFrame : 67ms
Bit rate : 468 Kbps
Width : 1 024 pixels
Height : 768 pixels
Display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 15.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.040
Stream size : 7.16 MiB (81%)
Writing library : x264 core 120
Encoding settings : cabac=0 / ref=2 / deblock=1:0:0 / analyse=0x1:0x111 / me=umh / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=50 / keyint_min=15 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.60 / qpmin=3 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Encoded date : UTC 2014-02-04 03:28:25
Tagged date : UTC 2014-02-04 03:28:34
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 2mn 8s
Bit rate mode : Variable
Bit rate : 105 Kbps
Maximum bit rate : 148 Kbps
Channel count : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 1.61 MiB (18%)
Language : English
Encoded date : UTC 2014-02-04 03:28:25
Tagged date : UTC 2014-02-04 03:28:34
[/spoiler]
[spoiler="Скриншоты"]

[/spoiler]