2021 уже зарекомендовал себя как еще один сумасшедший год. Это также еще одна фантастическая возможность изучить новые навыки и расширить существующие. В разработке программного обеспечения стагнация-это верный способ отставать за кривой. С новыми языками, технологиями, лучшими практиками и рамками, выходящими все более и быстрее, это прекрасная возможность переоценить, куда вы хотите пойти в качестве разработчика.
В начале этого года я сделал именно это. Ранее в этом году я написал статью о том, что, как я чувствовал, были лучшими языками, которые можно узнать в 2021 году. С ним я почувствовал, что для разработчиков и интересующей области была хорошая смесь. Тем не менее, они не были языками для меня, чтобы учиться. Уже работая с Python, TypeScript, C#и Bash, я подумал о том, что я могу сделать, чтобы помочь продвинуть свои навыки вперед другими способами. После большого количества мысли я придумал несколько навыков программирования, которые, по моему мнению, стоит изучить в 2021 году.
Это большой. Функциональное программирование — это парадигма программирования, которая вращается вокруг идеи перемещения данных вокруг, ну, функционально! Вместо того, чтобы создавать объекты и методы призывов на этих объектах, ваши данные могут рассматриваться как поток, перемещаясь от функции к функции. Это требует другого способа размышлений о ваших программах. Это намного проще показать, чем объяснить это.
Давайте посмотрим на этот код Java. Это должно быть довольно знакомо всем, кто работал на языке ООП.
String words= "Here,are,some,words"; words = words.replace(",", " "); words = words.trim(); words = words.toUpperCase();
Здесь мы заменяем запятые пространствами, обрезали пробелы с конца, а затем устанавливаем все это на верхний регистр.
Теперь давайте посмотрим на тот же пример в Elixir, мой любимый язык функционального программирования.
words = "Here,are,some,words" |> String.replace(",", " ") |> String.trim |> String.upcase
Мы принимаем наш поток и вкладываем его в функцию замены, которая заменяет запятые на пространствах. Выход этого переворачивается в отделку, которая затем превращается в Up -Case. Обратите внимание, как слова назначаются один раз, где, как в нашем примере Java, мы объявляем их затем переназначать три раза. Это ключевая особенность Эликсира. Данные неизменны, что означает, что их нельзя изменить. Строка, передаваемая в замену, не меняется, а вместо этого возвращает новую ссылку на строку. Эта новая строка передается в TRIM, которая возвращает новую в UP -CASE. Наши переменные слова присваиваются только один раз, и наш первоначальный ввод никогда не был изменен. Этот шаблон программирования может помочь создать более надежное и более обслуживающее программное обеспечение.
Для тех, кто хочет начать работу с функциональным программированием, есть из чего выбрать! Если вы находитесь на JVM, у вас есть Scala или Clojure на выбор. Scala может быть проще, так как она поддерживает как ООП, так и парадигмы функционального программирования. Для тех, кто находится в стороне .NET света, F# — фантастический язык. Существует также версия Clojure, которая также работает на платформе .NET. Моим личным предпочтением является Эликсир, так как его синтаксис похож на синтаксис, но дает вам силу луча, виртуальную машину Эрланга.
Вы можете найти больше информации об Elixir At https://elixir-lang.org/
Это может поразить некоторых людей странными. Тем не менее, я считаю, что у Свифта есть место, помимо просто писать приложения для iOS. В 2015 году Swift был опубликован по лицензии Apache 2.0, что делает его открытым исходным кодом. На данный момент его можно запустить на Mac и Linux и может работать в Windows с помощью Docker.
Учитывая это, Swift можно использовать для создания не только приложений для iPhone. Вы можете создавать API, приложения командной строки и даже делать с ним машинное обучение. К сожалению, iOS все еще ограничен только Mac, но это начало.
Красота в том, насколько легко язык — писать и использовать. Это, безусловно, вдохновлен C, но чувствует себя как современный язык. Он далеко не такой неуклюжий или многословный, как Java. Тот же аргумент может быть приведен для Kotlin, который по сути стремится решить проблемы Java, будучи современным языком. Kotlin разрабатывается Jetbrains, поэтому вы знаете, что он рассматривается как первоклассный гражданин на их платформе Intellij. Котлин можно использовать для создания приложений для Android, что отлично подходит, а также создает веб -приложения, используя Spring Framework. Его можно использовать вместе с Java в существующих проектах, поэтому добавление его простой. Оба эти языка продувают своих предшественников практически во всех отношениях.
Так почему эти навыки важны? С одной стороны, мобильная разработка никуда не денется. На самом деле, я считаю, что его потребность будет продолжаться, из-за постоянно растущего числа систем, которые теперь могут взаимодействовать с телефонами. Приложения теперь позволяют вам контролировать свой автомобиль, дом, позволить вам делать платежи и многое другое. Кроме того, оба эти языка теперь могут быть использованы для создания большего количества видов приложений. По сути, вы можете построить свой мобильный и бэкэнд на том же языке сейчас. Если вы изучите Kotlin, вы даже можете собрать JavaScript и использовать его в Интернете. И это даже не входит в количество других умных приборов. Часы, дверные звонки и даже стиральные машины становятся умнее. Как Swift, так и Kotlin отлично подходят для создания приложений для этих приборов или для создания мобильных приложений для взаимодействия с ними. Это быстрые, современные и универсальные языки, которые можно предложить.
В качестве примечания, Apple Silicon уже оказался зверями, и оба этих языка, как было показано, очень хорошо справляются с этим. Я полагаю, что в конечном итоге мы увидим более широкую реализацию чипов ARM от всех поставщиков, поэтому знание этих языков будет отличным способом погрузиться в эти процессоры следующего поколения.
Вы можете начать с Swift в https://swift.org/ и котлин в https://kotlinlang.org/
Технология блокчейна никуда не денется в ближайшее время. Мы видели, как создали биткойн, Ethereum и даже Dogecoin. Криптовалюта продвинулась вперед, в то время как традиционные банковские и инвестиционные учреждения боролись с зубами и гвоздями. Я не собираюсь объяснять все тонкости того, как здесь работает блокчейн, но я считаю, что знание того, как программировать приложения, чтобы воспользоваться этой технологией, является чрезвычайно ценным навыком.
Криптовалюта по существу удаляет посредника в финансах. Биткойн и Ethereum не контролируются и не принадлежат централизованному банку или напечатаны из правительства. Из-за этого они рассматриваются как более частные и способ для будущей защиты от инфляции и любых изменений в стоимости доллара. Это абсолютно важно. Биткойн стоит того же самого везде в мире.
Почему это важно для нас как разработчиков? В последнее время Тесла объявила, что будет принимать Биткойн в качестве оплаты и не превращать обратно в стабильную монету или в доллар США. Это огромный шаг вперед для криптографии. Если все будет двигаться таким образом, наступит время, когда разработчикам нужно знать и понять, как создавать приложения, которые могут интегрироваться с блокчейном. Поскольку все больше людей начинают инвестировать и интересоваться криптовалютой, спрос на возможность использования ее для торговли на веб -сайтах и приложениях будет расти только.
Моим советом для начала работы было бы научиться прочности, языка программирования, используемого для создания приложений, чтобы воспользоваться Ethereum. Вам также понадобятся знания о таких языках, как Python и JavaScript, чтобы позволить вашим пользователям взаимодействовать с вашими приложениями. Ниже приведено простое приветствие, World App, взятое с веб -сайта Solidity.
pragma solidity ^0.8.0; contract MyContract { function helloWorld() public pure returns (string memory) { return "Hello, World!"; } }
Более подробную информацию можно найти в https://solitylang.org/
Перемещаясь от более широких языковых категорий в больший дизайн и архитектуру, GraphQL стремится решить пару проблем REST API. Он был разработан Facebook, чтобы помочь им упростить получение данных с своих серверов в их клиентские приложения.
Вместо того, чтобы объявлять конечные точки для вашего API, у вас есть одна конечная точка GraphQL, в которую вы передаете свои запросы и мутации. Запрос — это, по сути, определенный набор данных, которые вы хотите вернуть с вашего сервера. Вы бы использовали запросы для определения структуры данных и сколько записей вы хотите вернуться с вашего сервера. Мутации можно рассматривать как традиционную команду создания, обновления или удаления. Вы отправляете данные на сервер, который вы создаете или обновляете, или что -то, что вы хотите с ним делать.
GraphQL стремится упростить поиск и управление между клиентами и серверами. Вы больше не получаете больше или меньше данных, чем то, что вы ожидали, и действительно не нужно создавать кучу DTO для управления запросами и ответами. Вы просто определяете свои типы объектов, а затем вы можете указать, какие поля из него вы хотите, чтобы ваш сервер вернулся.
Заменит ли GraphQl Rest? Ну нет, я так не думаю. У каждого есть конкретный вариант использования. Иногда настройка API REST может работать лучше для вашего приложения. В других случаях вы можете использовать GraphQL. Почему я думаю, что GraphQL стоит изучать из -за того, насколько сложнее становятся наши данные. Сложные модели данных больше не должны иметь сложной логики для создания вашего набора данных на бэкэнд. С GraphQL вы сообщаете серверу именно то, что вы хотите обратно.
Вы можете узнать больше о GraphQL в https://graphql.org/
Докер был инструментом, без которого я не могу жить. Docker — это инструмент, используемый для упрощения среды кода. Вы снимаете «изображение» существующей среды, говорите, как один для Python или JavaScript, и, используя файл, называемый DockerFile, вы можете скопировать свой код в изображение и запустить его там, а не на своей машине.
В этом есть ряд преимуществ с точки зрения разработчика. Вы, например, вы можете держать среду разработки от местной машины. Все ваши зависимости и код изолированы на изображении. Это помогает предотвратить любые головные боли, с которыми вы можете столкнуться с управлением вашей средой на местном уровне. Это также облегчает обмен вашей средой с членами команды. Все, что вам нужно дать им, это ваш код и Dockerfile, и они могут использовать код точно так же, как он настроен на вашем компьютере.
Вы также можете настроить более сложные среды, используя Docker Compose, где вы можете создавать среды, используя несколько изображений. Вы можете развернуть базы данных, брокеры сообщений и многое другое, не загружая и устанавливая эти части программного обеспечения в вашу систему. Затем вы можете ссылаться на тех, кто находится в своем программном обеспечении, независимо от того, используете ли вы это в контейнере или нет. Это значительно упрощает процесс создания и управления средами разработки.
Это можно сделать еще на шаг с помощью таких инструментов, как Docker Swarm и Kubernetes, которые значительно упрощают настройку и настройку производственных сред. Возможность упаковки и развертывания программного обеспечения в таких контейнерах, как это, значительно снижает риск уничтожения всей системы. Опять же, наличие всех ваших конфигураций и приложений, выделенных таким образом, действительно помогает гарантировать, что ваш код будет работать точно так же, как бы он ни был.
Как и в случае с GraphQL, Docker и Container Technology помогает решить сложную бизнес -инфраструктуру. Сейчас, имея все больше компонентов приложений, и с тем, что они становятся все более ориентированными на микросервис, Docker является важным инструментом для разработчиков для изучения и использования. Мощность и гибкость, которые он дает вам, чтобы контролировать каждую часть вашей
Более подробную информацию о Docker можно найти в https://www.docker.com/
Мир развития постоянно меняется и развивается, и мы, как разработчики, должны оставаться на вершине. Как написано программное обеспечение и инструмент, который мы используем для его создания, иногда может меняться на ночь. Важно постоянно учиться и добавлять новые навыки к тому, что вы знаете.
Эти навыки и технологии, которые я обсуждал, являются отличным способом сделать именно это. Более основные языки вводят функциональные элементы в свой синтаксис. Наши домашние приборы и телефоны не только становятся умнее, но и более доступны и сложнее. Swift и Kotlin — отличные языки, чтобы узнать в этом отношении. Технология блокчейна будет продолжать расти и станет более широко принятой, поскольку спрос и осознание крипторов продолжают расти. GraphQL и Docker — это инструменты, которые помогут с тем, как вы создаете свои приложения и получаете данные для них. Они решают проблемы развертывания, API, зависимостей и многого другого. С этими навыками вы не только помогаете писать лучшее программное обеспечение, но и вы также помогаете сами в будущем.
(Фото от Firos NV на Unsplash)
Оригинал: «https://dev.to/brockherion/top-5-programming-skills-worth-learning-in-2021-98a»