TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 3 подобни публикации

Търсене: #karlkaiser

当前筛选 #karlkaiser清除筛选
🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5583 · 04.05.2022 г., 17:00

#Concierto5#ConciertoDeBrandemburgo#Bach#KarlKaiser#GottfriedVonderGoltz#MichaelBehringer Título:Concierto de Brandemburgo No. 5, BWV 1050 Autor:Johann Sebastian Bach Movimientos: 🎵 I. Allegro 🎵 II. Affettuoso en si menor 🎵 III. Allegro Interpretación: Orquesta Barroca de Friburgo Karl Kaiser - Flauta Gottfried Von der Goltz - Violín Michael Behringer - Clavecín Fuente: 🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5582 · 04.05.2022 г., 17:00

​​​​#Concierto5#ConciertoDeBrandemburgo#Bach#KarlKaiser#GottfriedVonderGoltz#MichaelBehringer CONCERTO DE BRANDEMBURGO No. 5, BWV 1050 Se presenta en 3 movimientos: 🎵I. Allegro 🎵 II. Affettuoso en si menor 🎵 III. Allegro Concertino : clavecín , violín, flauta El clavecín es un instrumento concertino y ripieno. En los pasajes concertinos la parte es obbligato ; en los pasajes ripienos tiene una parte de bajo figurada y toca continuo. El primer Allegro tiene el aire juguetón que le confieren las repeticiones de notas y los tresillos. La parte central tiene un caracter que después veremos en Mozart. El Affetuoso deja soñar libremente la flauta, el clavecín y al primer violín. El Allegro del tercer movimiento conserva el caracter íntimo de todo el concierto. Pero lo más destacable es la cadencia para el clave, que es enfatizada por el violín y la flauta solistas que, en lugar de dejar de tocar bruscamente, van retirándose progresivamente para mostrar el despliegue de la cadencia. La cadencia tiene (en su versión final) una duración de 65 compases, que exhiben un amplio espectro de figuraciones rápidas, desde las semicorcheas a las fusas, y culminan con una secuencia cromática que conduce al ritornello final. El segundo movimiento lleva la indicación affettuoso y prescinde del ripieno, por lo que la alternancia entre el tutti y el concertino queda sugerida por los cambios en la dinámica indicada (piano o forte), y por la alternancia estructural entre el ritornello y los episodios. El tema principal del movimiento está basado en una fuga del quinto libro de piezas para órgano de Louis Marchand , lo que apoya la tesis de que el concierto se compuso para el “duelo musical” en Dresde. El movimiento, que está en la tonalidad de Si menor, comienza con un ritornello que ocupa los cinco primeros compases, en el que el tema principal es expuesto en estrecho por el violín y la flauta, y finalmente por el clave, concluyendo en una semicadencia sobre Fa#. En el tercer Movimiento, muy alegre y humorístico, se combinan los ingeniosos elementos de la fuga con las formas de aria da capo. Es de destacar que al final se repiten literalmente los primeros 78 compases. En el movimiento central Bach emplea uno de los temas de Marchand. Pero Marchand huyó antes de que la competición tuviera lugar, al parecer asustado ante la gran reputación de Bach en virtuosismo e improvisación. El tema del tercer movimiento está tomado de una giga de Buxtehude. En este concierto se presenta, esta cadencia se transforma en una auténtica y maravillosa obra para clave, donde podemos escuchar las más exquisitas variaciones e invenciones sobre los temas tratados anteriormente. El virtuosismo va en aumento hasta requerir del intérprete la mayor destreza imaginable. Todo esto hace que este concierto pueda ser considerado como el primero original para teclado que se haya escrito. @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5581 · 04.05.2022 г., 17:00

​​​​#Concierto5#ConciertoDeBrandemburgo#Bach#KarlKaiser#GottfriedVonderGoltz#MichaelBehringer CONCERTO DE BRANDEMBURGO No. 5, BWV 1050 Johann Sebastian Bach escribió su quinto Concierto de Brandenburgo , BWV 1050, para clavecín , flauta y violín como solistas, y un acompañamiento orquestal compuesto por cuerdas y continuo . Una versión temprana del concierto , BWV 1050a, se originó a fines de la década de 1710. El 24 de marzo de 1721, Bach dedicó la forma final del concierto al margrave Christian Ludwig de Brandeburgo. Las primeras fuentes existentes de las propias composiciones para conciertos de Bach datan de su período Köthen (1717-1723) , donde el autógrafo de 1721 de los seis Conciertos de Brandenburgo ocupa un lugar central. No obstante, alrededor de media docena de conciertos existentes de Bach, incluidos algunos de los Conciertos de Brandenburgo y modelos perdidos de sus posteriores conciertos de clavecín , parecen haber tenido sus raíces en su período de Weimar. La mayor parte de lo que Bach pudo haber dejado con su empleador en Weimar pereció en un incendio que destruyó a Schloss Weimar en la década de 1770. Cuando Bach agregó el concierto al conjunto de Conciertos de Brandenburgo en 1721, lo había reelaborado para un clavecín de dos manuales, ampliando el acompañamiento con una parte adicional de violonchelo. Debido a la entrada limitada de las partes solistas de violín y flauta, en comparación con la del clavicordio, el concierto puede verse como un concierto de clavicordio , además, el primer concierto de clavicordio jamás escrito. Formalmente, el quinto Concierto de Brandeburgo es un concierto grosso , con un concertino que consta de tres instrumentos. Sin embargo, en todo el concierto, el clavecín toma el papel principal entre los solistas, con, por ejemplo, un largo pasaje en solitario para este instrumento cerca del final del primer movimiento: ninguno de los otros solistas tiene un pasaje en solitario comparable. En este sentido, el concierto se ha llamado el primer concierto para teclado jamás escrito. Vivaldi y otros compositores, ocasionalmente habían dado pasajes solistas a instrumentos de teclado en sus conciertos antes de Bach, pero nunca se había escrito un concierto que le diera al clavicordio un papel solista en toda la escala del quinto Concierto de Brandeburgo y su predecesor BWV 1050a. En ninguna parte del concierto se permite que el violín concertato brille con pasajes solistas violinísticos típicos: Bach asignó todos los modismos específicos de violín solo, incluidos arpegios y pasajes de bariolage similares a violín extendidos, al clavecín. El traverso naturalmente tranquilo tampoco tiene la oportunidad de cubrir las contribuciones del clavecín a la polifonía. Ni el violín ni los solistas de flauta obtienen pasajes solistas más rápido que treinta segundos: estos episodios muy rápidos, típicos de un violín concertato, en este concierto también están reservados exclusivamente para el clavicordio. En la primera versión del concierto, el violín concertato siempre tiene que tocar el piano.o más tranquilo cuando el clavecín toca un pasaje solista. @ClasicaAlAtardecer