software_engineering_II_lessons

所属分类:自动编程
开发工具:Java
文件大小:5648KB
下载次数:0
上传日期:2023-06-17 20:15:51
上 传 者sh-1993
说明:  本课程旨在提供对各种编程原理、敏捷开发方法的初步理解...
(This course is designed to provide an initial understanding of various programming principles, agile development methodologies, quality attributes, software architectural patterns, styles, tactics, and, software design patterns. Additional learnings like Docker, code review, and infrastructure are included too.)

文件列表:
aoe (0, 2023-06-18)
aoe\diagrams (0, 2023-06-18)
aoe\diagrams\packages_diagrams (0, 2023-06-18)
aoe\diagrams\packages_diagrams\diagramas-svg (0, 2023-06-18)
aoe\diagrams\packages_diagrams\diagramas-svg\paqueteConsumercsv.svg (15707, 2023-06-18)
aoe\diagrams\packages_diagrams\diagramas-svg\paqueteConsumerdb-v2.svg (18222, 2023-06-18)
aoe\diagrams\packages_diagrams\diagramas-svg\paqueteProducer.svg (18310, 2023-06-18)
aoe\diagrams\sequence_componets_diagrams (0, 2023-06-18)
aoe\diagrams\sequence_componets_diagrams\diagramas-svg (0, 2023-06-18)
aoe\diagrams\sequence_componets_diagrams\diagramas-svg\Componentes.drawio.svg (23567, 2023-06-18)
aoe\diagrams\sequence_componets_diagrams\diagramas-svg\Diagrama de Secuencia-Publisher.drawio.svg (35103, 2023-06-18)
aoe\diagrams\sequence_componets_diagrams\diagramas-svg\DiagramadeSecuenciaConsumer.svg (15994, 2023-06-18)
aoe\diagrams\sequence_componets_diagrams\diagramas-svg\DiagramadeSecuenciaConsumercsv.svg (15933, 2023-06-18)
aoe\openmarket-csv-logs (0, 2023-06-18)
aoe\openmarket-csv-logs\events.csv (0, 2023-06-18)
aoe\openmarket-csv-logs\pom.xml (3468, 2023-06-18)
aoe\openmarket-csv-logs\src (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\access (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\access\repository (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\access\repository\CsvEventLogRepository.java (590, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\access\repository\IEventLogRepository.java (212, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\domain (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\domain\service (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\domain\service\CsvEventLogService.java (434, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\domain\service\IEventLogService.java (120, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\domain\service\RabbitMQConsumer.java (2079, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\main (0, 2023-06-18)
aoe\openmarket-csv-logs\src\main\java\com\unicauca\openmarket\main\Main.java (1034, 2023-06-18)
aoe\openmarket-csv-logs\src\test (0, 2023-06-18)
aoe\openmarket-csv-logs\src\test\java (0, 2023-06-18)
aoe\openmarket-csv-logs\src\test\java\com (0, 2023-06-18)
... ...

# Software Engineering II Welcome to Software Engineering II. This course is designed to provide an initial understanding of various programming principles, agile development methodologies, quality attributes, software architectural patterns, styles, tactics, and, software design patterns. Additional learnings like Docker, code review, and infrastructure are included too. ## Throughout the course, you will learn about: - General programming principles such as YAGNI, Separation of Concerns, KISS, DRY, Do The Simplest Thing That Could Possibly Work, Composition Over Inheritance, Code For Maintainer, Boy-Scout Rule, Avoid Premature Optimization, etc. - SOLID Design Principles: Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Injection - Design patterns such as Factory, Singleton, Observer, and more - Agile development practices including continuous integration/continuous deployment (CI/CD) - Code versioning and refactoring - Code review and testing - Docker - AWS Cloud - SSH We want to provide you with hands-on experience in software development using modern software engineering practices. You will work on individual and group projects throughout the semester, applying what you learn in the classroom to real-world software development problems. ## Course Structure The course consists of lectures, in-class exercises, and individual/group assignments. You will also be required to complete a final project that demonstrates your understanding of the concepts covered in the course. ## Prerequisites Before taking this course, it is recommended that you have a strong foundation in programming fundamentals and have completed Software Engineering 1 or an equivalent course. ## Course Goals Upon completion of this course, you should be able to: - Apply modern software engineering practices to real-world software development problems - Understand agile development methodologies, including continuous integration/continuous deployment (CI/CD) - Understand SOLID Design Principles and use them to design modular, scalable, and maintainable software systems - Understand and apply common software design patterns - Use code versioning and refactoring techniques to improve the quality and maintainability of software - Participate in code review and testing processes to ensure high-quality software development - Use Docker to containerize and deploy software applications - Deploy applications in different infrastructure focusses ### Online resources: - [Online Moodle Course](http://univirtual.unicauca.edu.co/moodle/course/view.php?id=2234) - [Refactoring Guru](https://refactoring.guru/es) - [Martin Fowler's website](https://martinfowler.com/) - [Learn Git Branching](https://learngitbranching.js.org/) ### Lessons - [General Programming Principles](principles/general/README.md) - [SOLID Principles](principles/solid/README.md) - [Maven](maven/README.md) - [Git](git/README.md) - [Architectural Patterns](./architectural_patterns/README.md) - [Model View Controller (MVC)](./architectural_patterns/mvc.md) - [Layers](./architectural_patterns/layers.md) - [Design patterns](design_patterns/README.md) - [Structural patterns](design_patterns/structural/README.md) - [Decorator](design_patterns/structural/decorator.md) - [Adapter](design_patterns/structural/adapter.md) - [Facade](design_patterns/structural/facade.md) - [Proxy](design_patterns/structural/proxy.md) - [Bridge](design_patterns/structural/Bridge.md) - [Composite](design_patterns/structural/Composite.md) - [Flyweight](design_patterns/structural/Flyweight.md) - [Creational patterns](design_patterns/creational/README.md) - [Abstract factory](design_patterns/creational/abstractfactory.md) - [Factory method](design_patterns/creational/factorymethod.md) - [Singleton](design_patterns/creational/singleton.md) - [Builder](design_patterns/creational/builder.md) - [Prototype](design_patterns/creational/prototype.md) - [Behavioral patterns](design_patterns/behavioral/README.md) - [Command](design_patterns/behavioral/command.md) - [Iterator](design_patterns/behavioral/Iterator.md) - [Template Method](design_patterns/behavioral/TemplateMethod.md) - [Chain of Responsibility](design_patterns/behavioral/chainofresponsibility.md) - [Observer](design_patterns/behavioral/observer.md) ## How to Contribute If you want to contribute to this Repo, you must follow the next steps: 1. Request access to the owner `@zahydo`. 2. Clone the repo: `git clone https://github.com/zahydo/software_engineering_II_lessons` 3. Create a new branch with your contributions: `git checkout -b feature/name_lastName/solid` 4. Commit your changes in the new branch: `git add .`, `git commit -m "descriptive commit message"` 5. Always pull the last changes from the `main` branch: `git pull --rebase origin main` 6. Resolve possible conflicts. 7. Push your branch to the remote: `git push -f origin feature/name_lastName/solid` 8. Create a PR with your new branch in the remote. Follow the next steps: [Tutorial](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) 9. Add the owner as a Reviewer `@zahydo` 10. Wait for comments. Update the branch with the requested changes (if there are). ## Author [@sahydo](https://sahydo.com)

近期下载者

相关文件


收藏者