آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

دوره جامع طراحی و پیاده سازی مدرن نرم افزار

پیشنیاز : آشنایی با مباحث شی گرایی و Design pattern ها
تاریخ شروع طول دوره ساعت برگزاری نام استاد هزینه (تومان) وضعیت
1397/03/31 120 ساعت پنجشنبه ها ساعت 16:30 تا 20:30 مهندس هادی احمدی 4,500,000 درحال برگزاری
1397/04/14 120 ساعت پنجشنبه ها ساعت 12:15 تا 16:15 مهندس هادی احمدی 4,500,000 درحال برگزاری
1397/11/25 120 ساعت پنجشنبه ها ساعت 16:30 تا 20:30 مهندس هادی احمدی 4,500,000 ثبت نام

توجه: از دانشجویان عزیز تقاضا میگردد جهت قطعی کردن ثبت نام با آموزشگاه تماس بگیرند.


اهداف دوره جامع طراحی و پیاده سازی مدرن نرم افزار :

این دوره با هدف آموزش تمام مهارت های لازم جهت تولید نرم افزار با کیفیت و کم هزینه برای برنامه نویسان طراحی شده است. دانشجو در ابتدای دوره با Code Smell ها آشنا می شود و تفاوت بین کد خوب و کد بد را می آموزد. سپس نکات و روش های Clean Coding را می آموزد و از طریق مثال های واقعی با نحوه نوشتن کد تمیز آشنا می شود. سپس با یادگیری روش های Refactoring و تکنیک های آن، نحوه اصلاح کدهای فعلی خود را یاد می گیرد.

پس از یادگیری اصول کدنویسی و پیاده سازی صحیح، دانشجو وارد بحث طراحی و معماری سیستم می شود. ابتدا با مفاهیم و اصول طراحی شی گرا مانند SOLID آشنا می شود و پس از آن الگوهای طراحی (Design Pattern) را می آموزد.

پس از آن دانشجو با Unit Testing و TDD و پس از آن با Acceptance Testing و BDD آشنا می شود و روش ها و اصول نوشتن تست های خودکار را فرا می گیرد و به طور حرفه ای از فریم ورک ها و ابزارهای آن مانند Specflow وxUnit استفاده می کند.

پس از این مرحله، پروژه ای به عنوان هدف تعریف می شود تا به عنوان Case-Study طراحی و پیاده سازی شود. در این مرحله دانشجو با Domain-Driven Design آشنا شده و اجزاء سیستم هدف را از طریق Strategic Design شناسایی و تفکیک می کند و پس از آن الگوها و روش های مطرح شده در Tactical Design را از طریق پیاده سازی یکی از Bounded Context ها می آموزد. سپس لایه های دیگر نرم افزار از جنبه طراحی و معماری مورد بررسی قرار می گیرد و پیاده سازی آنها بر روی پروژه هدف انجام می گیرد. در جریان این پیاده سازی، تکنیک ها و الگوهای زیادی مانند CQRS, Micro services, Event Sourcing مورد بررسی و پیاده سازی قرار خواهند گرفت.

در آخر دوره دانشجو (که جلسات قبل با Claim-Based Identity آشنا شده است) راه اندازی یک Identity Server را مشاهده می کند و با مفاهیم و پروتکل های استاندارد آن (مانند OAuth و Open ID Connect) آشنا می شود.


سرفصل دوره جامع طراحی و پیاده سازی مدرن نرم افزار

Clean Coding, Refactoring

  • Code Smells
  • Practices & Techniques of Clean Coding
  • Pattern-Based Refactoring
  • Defensive Coding
  • Design by Contract & Code Contracts

Software Design

  • Software Design Process
  • Software Architecture
  • Detailed Design
  • The Object Model (Classes & Objects)
  • Relationships among Classes (Dependency, Association, Aggregation, Composition, ...)
  • Design Smells
  • Design Principles (GRASP, SOLID, KISS, DRY, …)
  • Dependency Injection

Design Patterns

  • Creational Patterns
    • Abstract Factory
    • Builder
    • Factory Method
    • Prototype
    • Singleton
  • Structural Patterns
    • Adapter
    • Bridge
    • Composite
    • Decorator
    • Façade
    • Flyweight
    • Proxy
  • Behavioral Patterns
    • Chain of Responsibility
    • Command
    • Interpreter
    • Iterator
    • Mediator
    • Memento
    • Observer
    • State
    • Strategy
    • Template Method
    • Visitor

Domain-Driven Design, CQRS

  • Introduction to DDD
  • Ubiquitous Language
  • Strategic Design
    • Domain
    • Subdomain & Types
    • Bounded Context
    • Context Mapping
  • Tactical Design & Patterns
    • Entity
    • Value Object
    • Aggregate & Aggregate Root
    • Domain Service
    • Domain Event
    • Repository
    • Factory
  • Relationship between bounded contexts
    • Shared Kernel
    • Customer/Supplier
    • Conformist
    • Anti-Corruption Layer (ACL)
    • Separate Ways
    • Open Host Service
    • Published Language
  • Integrating Bounded Contexts
    • Via REST, RPC
    • Via Messaging
    • Introduction to NServicebus
  • Architecture
    • Onion Architecture, Hexagonal Architecture, Ports and Adapters, Clean Architecture
    • Domain Layer
    • Application Layer
    • Infrastructure Layer
    • Service Layer
    • Presentation Layer
    • Cross-Cutting Concerns
      • Aspect-Oriented Programming (AOP)
      • Logging
      • Caching
      • Security
      • Exception Handling
  • Command Query Responsibility Segregation
  • Event Sourcing

Persistence

  • Introduction to Popular ORMs (NHibernate, EF, …)
  • Techniques for Persisting Aggregate Using Entity Framework & NHibernate
  • Repository & UnitOfWork Pattern
  • Introduction to NoSQL

Service Layer

  • Introduction to REST, RPC
  • REST Architectural Constraints
  • REST API Design Strategies & Rules
  • Content Negotiation
  • Introduction to ASP.NET Web API
  • Advanced Web API Topics (Versioning, Message Handlers, Media Formatters, Security, …)

Presentation Layer

  • Introduction to SPA (Single-Page Application) & Frameworks (Angular, React)
  • Presentation Patterns (MVVM, MVC, MVP)
  • Task-based UI

Identity Management

  • Terminology (STS, RP, Token, …)
  • Claim-based Identity
  • OAuth, OpenID Connect
    • Implicit Flow
    • Authorization Code Flow
    • Client Credential Flow
    • Resource Owner Password Credential Flow
  • OWIN, Katana, ASP.NET Identity
  • Thinktecture Identity Server

Test-Driven Development (TDD)

  • Terminology (Test Suite, Test Method, …)
  • Goals of Test Automation
  • Levels of Testing (Unit, Integration, Acceptance, Stress, …)
  • Test Pyramid
  • Testable Design
  • Quality Attributes of Good Test suite
  • Test Smells
  • Testing Strategies
  • Introduction to TDD
  • TDD Cycle
  • .NET Testing frameworks (xUnit, NUnit, …)
  • Test Doubles (Mock, Fake, Stub, …)
  • .NET Test Double Frameworks (NSubstitute, Moq, …)
  • 4-Phase Tests
  • Fixture-Setup Patterns
  • Result Verification Patterns & Frameworks (FluentAssertions, NFluent, …)
  • Fixture-Teardown Patterns
  • Test Parallelization
  • Testing Database & Data Access Layer
  • Continuous Testing Tools (NCrunch)
  • Continues Integration Tools (TFS, Team City)
  • Code Coverage Tools (DotCover)

Behavior-Driven Development (BDD)

  • Terminology (Feature, Acceptance Criteria, Example, …)
  • Feature Injection
  • Identifying Key Examples
  • Using Ubiquitous Language in Scenarios
  • Introduction to Gherkin Syntax (Given/When/Then)
  • Introduction to Specflow
  • Layering & Architecting Acceptance Tests
  • Automating UI Layer
    • Introduction to browser Automation tools (Selenium)
    • Page Object Model Pattern
  • Automating Non-UI Layer

آموزش Design Pattern-آموزش معماری نرم افزار- آموزش تست نرم افزار-آموزش Clean Code- آموزش Refactoring-دوره آموزش design pattern
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال
آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .