Compor Software: O Livro

Eric Elliott Blocked Unblock Seguir Seguindo 6 de janeiro Fumaça Art Cubes to Smoke – Mattys Flicks – (CC BY 2.0)

Observação: isso faz parte do livro “Compor software”, que começou bem aqui como uma série de posts no blog. Abrange a programação funcional e técnicas de software de composição em JavaScript (ES6 +) a partir do zero.

"Composing Software", a série de postagens de blog sobre programação funcional e composição de software em JavaScript é agora um best-seller sobre o Leanpub .

Em 18 de fevereiro de 2017, comecei a escrever um post no blog sobre programação funcional. "A ascensão e queda e ascensão da programação funcional" foi para servir como um artigo introdutório para uma série de artigos sobre composição de software. Eu não tinha ideia de quando comecei a escrever que atrairia mais de 100.000 leitores, ou que os artigos que se seguem atrairiam mais de um milhão de leituras agregadas, ou que se tornaria um livro e aumentaria a lista de best sellers Leanpub na semana em que foi anunciado.

Meus sinceros agradecimentos vão para JS Cheerleader, que fez o livro melhor de muitas maneiras para listar. Se você encontrar o texto legível, é porque ela cuidadosamente derramou sobre cada página e ofereceu feedback perspicaz e encorajamento a cada passo do caminho. Sem a ajuda dela, você não estaria lendo isso agora.

Graças aos leitores do blog, o apoio e o entusiasmo nos ajudaram a transformar uma pequena série de posts em um fenômeno que atraiu milhões de leituras e proporcionou o ímpeto de que precisávamos para transformá-lo em um livro.

Graças às lendas da ciência da computação que abriram o caminho.

"Se eu vi mais, é ficar de pé sobre os ombros dos gigantes." ~ Sir Isaac Newton

Todo o desenvolvimento de software é a composição: o ato de dividir um problema complexo em partes menores e compor essas soluções menores para formar seu aplicativo.

Mas percebi ao entrevistar candidatos para trabalhos de desenvolvimento de software, quase nenhum deles poderia descrever qual composição é no contexto do software. Quando eu perguntei “o que é composição de função?” Ou “o que é composição de objeto?” Em entrevistas, eu recebi… gaguejos. Grilos Nada.

Como isso poderia ser? Como poderiam 99% dos desenvolvedores profissionais – alguns com mais de 10 anos de experiência em desenvolvimento de software não conhecerem definições ou exemplos das duas formas mais básicas de composição em engenharia de software? Todo mundo compõe funções e objetos no processo de construção de software diariamente, então, como tantas pessoas não poderiam entender os fundamentos básicos dessas técnicas?

O fato é que a composição simplesmente não é um assunto pelo qual as pessoas prestam atenção, ou ensinam bem, ou aprendem. Ocorreu-me que talvez seja por isso que complicar demais as coisas é o maior erro que os desenvolvedores de software cometem todos os dias . Quando você não sabe como encaixar blocos lego juntos, você pode quebrar a fita adesiva e cola louca e enlouquecer … em detrimento do software, seus companheiros de equipe e seus usuários.