No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Understanding the principles of defensive development

13/25
Recursos

Como desarrollador o desarrolladora de software eres responsable no solo de la calidad del c贸digo que escribes, sino tambi茅n de la seguridad y el cuidado del mismo.

Defiende tu software de ti mismo y de tus compa帽eros

Procura cuidar tu software no solo de otras personas, tambi茅n de ti mismo. Si tienes necesidad de refactorizar tu c贸digo o trabajar en el que escribiste hace meses/a帽os, puedes introducir bugs en el mismo al no recordar qu茅 has hecho aqu铆.

  • Talk to your teammates and make sure their number one priority is protecting that advantage that you have just gotten.
  • This is where the concept of Defensive Development comes from.
  • Once you have reached a point where your software is working, you need to protect it and make sure it continues working.

Let鈥檚 look at some techniques to do that:

T茅cnica #1 - Control de versiones con tu repositorio de c贸digo

En el desarrollo de software tradicional, no utilizar un control de versiones como GIT no es una opci贸n.

  • Version Control is a super cool technology you can use, it鈥檚 one of the best defensive tools.
  • VC software helps you keep track of changes made to your code.
  • VS allows you to control different versions of your files, different versions of your code, and different versions of what you have committed.

Control de versiones con tu repositorio de c贸digo

  • Committing is a very important word here - saving your files onto the version control software. You are committing new versions of your files into your VC repository.
  • You commit those changes to your branch or branches.
  • The Branch is the file of code you are working on.
  • Within this branch, you can have additional branches, for different uses and modifications on different branches.
  • It lets multiple people check changes back into the repository and distribute them.
  • It keeps track of the history, who changes what, when, and why.
  • It tags, so you can find versions of your code from 鈥渨ay back when鈥.

T茅cnica #2 - Controla tus dependencias

Un proyecto de software tendr谩 N dependencias de terceros, c贸digo que t煤 ni tu equipo han escrito, pero dependes de 茅l para que el mismo funcione. Llevar un control de qu茅 dependencias utilizas es muy importante.

  • Dependencies make your code more complex.
  • Sometimes you want to test some functionality of your code, but that functionality is tied to another task you haven鈥檛 done yet.
  • Real-World code always has dependencies, it鈥檚 never isolated.
  • Sometimes you have code that depends on something external, like a database.
  • You have to figure out a way to test that functionality independent of those dependencies.
  • Always check your dependencies for connectivity necessities.
  • You need to find a way to keep things independent but work together at the same time to make testing easier.

Test-Driven Development (TDD)

El Test-Driven Development (TDD) es una de las metodolog铆as m谩s populares para escribir pruebas de software.

C贸digo que prueba tu c贸digo.

  • TDD = Doing everything with testing in mind, writing tests before the code.
  • This approach ensures that Developers clearly understand the specifications and requirements of features.
  • TDD is all about creating tests for individual pieces of functionality, and then writing code for that specific functionality.

Cuidar el c贸digo de un proyecto es trabajo de todo el equipo. Llegar a un acuerdo sobre qu茅 metodolog铆as utilizar谩n, c贸mo versionar谩n el c贸digo, c贸mo escribir谩n las pruebas. Son charlas que t煤 y tu equipo deben tener antes de comenzar un proyecto.


Contribuci贸n creada por: Kevin Fiorentino.

Aportes 30

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Version Control
In software engineering, version control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.
/


/
Test-driven development (TDD)
Is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirements.
/

Take this course;
https://platzi.com/clases/git-github/
There you can fully understand and domain the topic about version control.

Defend your software

  • Talk to your peers to protect the advantage
  • Protect your software

Technique 1: Version control with your code repository

  • Keeps track of changes made to your code
  • Control different versions
  • Committing: Save your local files to your version control
  • Branch: File of code you鈥檙e working on

Control your dependencies

  • Dependencies makes your code more complex
  • Figure out how to test independent functionalities without dependencies
  • Check dependencies for connectivity issues

Peers = teammates

JAVA BUILDER TOOLS

  • Maven
    Apache Maven is a powerful software project management tool used in the Java development environment to manage and build projects as well as to maintain dependencies. Maven uses an XML (pom.xml) for project configuration.
  • Gradle
    Gradle is a modern automation tool used in software development for project build automation. Gradle has its own domain-specific language (DSL) based on a Groovy (build.gradle).
  • Ant
    Apache Ant is the predecessor of Apache Maven. First released in 2000, Ant was developed as a replacement for a build tool Make, which was used widely in software development in the past. Using an XML file

    According to the 2021 Java Developer Productivity Report, the majority of Java developers reported using Maven as their main build tool, at 67% of respondents. In a distant second and third place were Gradle at 20% of respondents and Ant at 11%.

    https://www.jrebel.com/blog/java-build-tools-comparison

Thanks

Thanks 馃槉

thank you teacher

Branch: File of code you鈥檙e working on Control your dependencies Dependencies makes your code more complex Figure out how to test independent functionalities without dependencies Check dependencies for connectivity issues
Defend your software Talk to your peers to protect the advantage Protect your software Technique 1: Version control with your code repository Keeps track of changes made to your code Control different versions Committing: Save your local files to your version control
Ant Apache Ant is the predecessor of Apache Maven. First released in 2000, Ant was developed as a replacement for a build
JAVA BUILDER TOOLS Maven Apache Maven is a powerful software project management tool used in the Java development environment to manage and build projects as well as to maintain dependencies. Maven uses an XML (pom.xml) for project configuration. Gradle Gradle is a modern automation to
Keeps track of changes made to your code Control different versions Committing: Save your local files to your version control Branch: File of code you鈥檙e working on Control your dependencies Dependencies makes your code more complex Figure out how to test independent functionalities without dependencies Check dependencies for connectivity issues
Defend your software Talk to your peers to protect the advantage Protect your software Technique 1: Version control with your code repository
Test-driven development (TDD) Is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirement
Version Control In software engineering, version control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.

Defend your software

Talk to your peers to protect the advantage
Protect your software
Technique 1: Version control with your code repository

Keeps track of changes made to your code
Control different versions
Committing: Save your local files to your version control
Branch: File of code you鈥檙e working on
Control your dependencies

Dependencies makes your code more complex
Figure out how to test independent functionalities without dependencies
Check dependencies for connectivity issues

Hello
estoy aprendiendo
jdkd
yes

Understanding the principles of defensive development Defend your software

Talk to your peers to protect the advantage
Protect your software
Technique 1: Version control with your code repository

Keeps track of changes made to your code
Control different versions
Committing: Save your local files to your version control
Branch: File of code you鈥檙e working on
Control your dependencies

Dependencies makes your code more complex
Figure out how to test independent functionalities without dependencies
Check dependencies for connectivity issues Version Control
In software engineering, version control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.
/

Version Control.png
/
Test-driven development (TDD)
Is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirements.
/
Screenshot from 2020-08-23 18-32-38.png

Version Control
In software engineering, version control is a class of systems responsible for managing changes to

Defend your software from yourself and your peers:

  • Talk to your team and protect the advantage, and advance that you reach it.
    Technique #1 - Version control with your code repository:
  • It鈥檚 one of the best defensive tools.
  • VC software helps you to keep track of changes made to your code.
  • VC allows you to control different versions of your files, different versions of your code, and different versions of what you have committed.
  • You have to save your files onto the version control software.
  • You鈥檙e committing new versions of your files into your VC repository.
    Technique #2 - Control your dependencies:
  • Make your code more complex.
  • Real word code always has dependencies, it鈥檚 never isolated.
  • You have to figure out a way to test that functionality independent of those dependencies.
  • You need to worry about compiling your code and packaging it into a deployable unit.
  • Your software must be usable.

protect your software.
The first technique is version control with your code repository, and the second technique is to control your dependencies. protect the advantage you just gained. And this is where the concept of defensive development comes from.

Once you鈥檝e reached a point where your software is developing, and once your code is compiling correctly and working fine, it鈥檚 working fine. So you should do everything you can to protect your software

version control. Version Control is a super cool technology that you can use. Version control allows you to control different versions of your code, different versions of your files, different versions of what you鈥檝e committed.

once you鈥檝e put it into version control, that means your software and code are working fine. Version control allows multiple people to check out changes to the repository and distribute them.

The second technique is about controlling your dependencies Dependencies make your code much more complex. It is very important that you always check the connectivity of your dependencies. you need to find a way to verify things and test things independently. take care of your work and you can protect your work using various defensive techniques.

Este video queda pausado en el minuto 4:39

You need to find a way to keep things independent, but working together at the same time to make testing easier.

Version Control is very important not only in Software projects but in any team project, I suppose

very good

Never watched American football !