Верно ли что python идеально подходит для написания драйверов устройств
Перейти к содержимому

Верно ли что python идеально подходит для написания драйверов устройств

  • автор:

Верно ли что python идеально подходит для написания драйверов устройств

Автор: Роман Самчук

Pokémon Go мережева гра, тому ми повинні реалізувати завантаження покемонів із сервера. Для того, щоб Вам не доводилося поратися з хостингами, ми будемо використовувати доступний всім google drive і на ньому розмістимо xml файл, який завантажуватимемо з unity.

Робота з мережею у Windows Server 2019 і 2022

Автор: Сергей Гапич

Даний урок присвячений вступу до мережевих технологій і інструментів реалізованих в серверних ОС. Багато хто чув і всі так чи інакше користувалися DNS (Domain Name System). Але, що є DNS? Чому його роль така ключова? На ці та інші питання і почне відповідати цей урок. Крім DNS, ми розглянемо DHCP (Dynamic Host Configuration Protocol). Навчимося використовувати мережевий інструментарій, а в кінці спробуємо опрацювати типові задачі із мережевого адміністрування.

Створюємо гру у стилі «Pokemon Go».

Автор: Роман Самчук

Даний відео курс присвячений створенню аналога однієї з найпопулярніших ігор для смартфонів – Pokemon Go. Ви дізнаєтесь, як завантажувати карту і потім ставити на ній точки появи покемонів. Точки будуть завантажуватися з документа XML, який зберігається на Google Drive. Також буде реалізована проста битва між покемонами гравця та нейтралами, буде додано можливість використовувати GPS-координати реального телефону.

Коли потрібно переходити на ASP.NET Core?

Автор: Steven Smith

Прошло много времени с момента релиза ASP.NET Core 1.0. Затем появились версии 1.1, 2.0… В общем и целом серверные компоненты и технология оказались достаточно качественными, в них было замечено всего лишь несколько багов. Кроме того, начиная с вышеупомянутой версии 1.1, было добавлено бессчётное множество различных полезных примочек к Entity Framework Core и самой ASP.NET Core. Помимо прочего, стоит также отметить радикальные отличия в структуре проектов, которые могут показаться слегка непривычными, но являются жизненно необходимыми для взаимодействия проектов .Net Core с другими типами проектов. Но ожиданиям качественного инструмента пришел конец. Произошел релиз Visual Studio 2017, и она успела зарекомендовать себя как достаточно стабильная версия. К тому же я без проблем сумел перенести мои проекты на базе project.json в новый формат файлов MSBuild без всяких проблем. Помимо прочего, стоит также отметить целую серию приятных улучшений стандартной среды языка .NET. Мы долго ждали и дождались – наконец-то стандарт .NET Core (вместе с технологией ASP.NET Core) успешно захватывает IT-рынок и обладает целым рядом полезных инструментов для разработки. Если вы из компании, которая от стольких лет ожидания успела натереть себе мозоль – определенно, вам есть чему радоваться. Итак, ASP.NET Core сейчас уже на полках. Так в каких случаях нам стоит забыть про старый добрый ASP.NET и опробовать его кроссплатформенную версию? Позволю себе поделиться мнением. Новые проекты Если вы начинаете разработку нового проекта с использованием MVC-подхода и/или Web API, вам определенно нужно обратить свое внимание на ASP.NET Core. Технология содержит в себе целую серию значительных улучшений, которые заметно отличают ее от предшественницы. Помимо прочего, она также может похвастаться первоклассной системой внедрения зависимостей. ASP.NET Core также обладает специальными tag-helper`ами. Используя сервис TestServer, вы запросто сумеете производить локальные тесты прямо на свое ПК (забудьте про падения через неверную конфигурация фаервола). Web API теперь внедрены в ASP.NET Core MVC, потому теперь нет никакой необходимости использовать сторонние библиотеки с кучей дублирующих компонентов. Также скорость работы значительно выше, плюс, помимо прочего, арсенал может похвастаться значительно большим количеством опций, нежели MVC5/WebAPI2, который в значительной мере привязан к IIS. Но что, если проект имеет среди зависимостей сторонние библиотеки (собственные или чьи-то еще), которые требуют полноценной среды .NET Framework, не включенной в .NET Core? Нет никаких проблем. При желании в ASP.NET Core можно включить полноценный .NET Framework. Желаете использовать ваш Entity Framework 6 или NHibernate для работы с данными? Да ради Бога. Все прекрасно будет работать и в ASP.NET Core. Единственное, что вы от этого утратите – это кроссплатформенность, ибо эти сервисы могут быть запущены только в рамках Windows-сервера. У меня нет времени переучивать команду на ASP.NET Core! На счастье, переход на новую платформу не займет много времени, если ваша команда уже знакома с ASP.NET MVC и/или Web API. Концепция Core – использовать все, что было раньше, но значительно лучше. Контроллеры и представления никуда не делись. Представления все еще используют Razor. Маршрутизация по сути своей осталась прежней – она даже стала немного проще. Фильтры также особо не изменились, а Web API добавили своего удобства в использовании (так как они были интегрированы в MVC). Конечно, отличия все же есть, но это не критично. Несколько новых вещей, вроде того, как запускается приложение или как работает middleware, выучить придется, но в целом опыт работы на предыдущей ASP.NET Core MVC тут будет решать очень многое. Я хочу поместить приложение в контейнер на Linux! Тогда вы можете желать только ASP.NET Core. Вы не сможете использовать библиотеки из среды .NET Framework, но что касательно стандартных компонентов .NET Core – полный вперед. И да, вы также можете помещать свои приложения под Azure на Linux. Судьба приложений на ASP.NET MVC 5 и/или Web API 2 Предугадать тут что-либо конкретное будет несколько затруднительно. Если эти приложения работают и запускаются без проблем, не думаю, что необходимость переходить под ASP.NET Core такая уж срочная. Однако, несколько причин, по которым стоит интегрировать подобные программы под ASP.NET Core, все же есть: Сама поддержка. Если вы бы хотели деплоить приложение и его сервер вместе, без привязки к IIS – Core, – это однозначно ваш выбор. Поддержка различных платформ. Порой использование Windows-ориентированных серверов может быть дороже прочих других. Возможно, вы могли слышать об поддержке контейнеров, Докера и так далее. Core все это поддерживает – причем на очень даже приличном уровне. Множественные приложения. Приходилось ли вам запускать несколько экземпляров приложения на одной и той же машине? ASP.NET Core позволит это делать значительно удобнее и эффективнее, нежели традиционный ASP.NET. Тестирование и Domain-Driven Design (DDD). Если ваша команда следует этому подходу, пишет тестируемое программное обеспечение, то ASP.NET Core (и Entity Framework Core) привнесёт целый ряд полезных фич, которые значительно могут упростить жизнь. Программы Web Forms Если ваше приложение базируется на веб-формах, возможно, вам лучше всего будет оставаться на ASP.NET. Microsoft активно инвестирует в эту технологию. Существует множество способов улучшить качество кода, используя внедрение зависимостей и прочее. Но смена платформы на ASP.NET Core MVC будет такой же «болезненной», как и переход на ASP.NET MVC 5,4,3,2,1. Что хуже, используя MVC 5, вы можете запускать страницы отдельно друг от друга, но проделать подобное с ASP.NET Core не представляется возможным. Лично я могу посоветовать оставаться на веб-формах до тех пор, пока приложение не потребует полноценной замены. В плане нагрузки на данные, потребовалось бы применить стиль SPA-приложений со значительно большим количеством клиентского кода и фрейморков типа Angular 2, или React. Другие размышления Хотя Visual Studio – прекрасный инструмент для разработки приложений, эта среда не бесплатная (за исключением комьнити-версии). Помимо прочего, она Windows-ориентированная (да, есть VS для MacOS, но это совершенно другое приложение). Если же студия для вас по причине цены или размеров неприемлема, .NET Core будет воистину полезным приобретением. Вы можете на MacOS, Linux (и, разумеется, под Windows) работать в Visual Studio Code! Подобным образом, если ваши приложения больше ориентированы на клиентскую часть, ASP.NET Core порадует более облегченными размерами. В то время, как фронтендеры превозносят NodeJS как быструю технологию (и ее возможность исполнять js-код на сервере), ASP.NET Core может также исполнять Node.JS на сервере (и вы также можете работать под JS на сервере, если вам захочется). Используя TechEmpower, ASP.NET Core, развернутый с использованием Kestrel, может обрабатывать до 1 миллиона запросов за секунду на том же ПК и в рамках того же приложения, в то время, как NodeJS обрабатывает всего около 175 тысяч в секунду. Подведем итоги Безусловно, ваш опыт и ваше мнение может сильно отличаться от моего, потому вопрос о том, стоит ли переходить на ASP.NET Core для некоторых может остаться открытым. И, конечно, ASP.NET Core далеко не единственная технология, используя которую вы будете создавать свое следующее веб-приложение. Однако, тема этой статьи как раз-таки ASP.NET Core, с которым мне приходилось долго проработать. К тому же, написано очень много официальной документации на официальном сайте Microsoft. Я не советую переходить на ASP.NET Core лишь потому, что он такой новый и весь из себя красивый. Решение перейти должно быть тщательно взвешенным и подкрепленным весомыми аргументами, которые я постарался привести в своей статье. Что дальше? Разработка ASP.NET Core продолжается. Уверен, версия 2.0 – далеко не последняя! Было бы неплохо взглянуть на обновленный SignalR и новую функциональность разор-страниц. Автор перевода: Евгений Лукашук Оригинал статьи

Обробка файлів С#. NET

Автор: Редакция ITVDN

Введение Статья объяснит Вам, как выполнять задачи по считыванию и введению файловой информации из разных областей, используя С#. .NET программирование API. Оно включает анализ структуры каталогов, определяет существующие папки и файлы, а также выполняет операции, связанные с файлами: перемещение, копирование и удаление объектов с диска. Цель статьи – определить типы, которые содержатся в области имен System.IO и объяснить, как разными способами можно считывать и вводить информацию в символьно-ориентированый, бинарный и строчный архив данных. Структура файловой системы Область имен System.IO состоит из 4 классов, которые помогут Вам оперировать конкретными файлами, работать с машинной структурой каталогов. Каталог адресов и файлов непосредственно наследует System.Object и поэтому выполняет задачи создания, копирования, перемещения и удаления файлов, используя при этом разные статические способы. Они содержат только статические методы, а главное то, что на их основе никогда не создаются экземпляры. Типы FileInfo и DirectotryInfo возникли от базового класса типа FileSystemInfo и обычно их используют, чтобы получить детальную информацию про файл или каталог, поскольку их элементы обычно настроены на возвращение типизованых объектов. Они используют те же общедоступные методы, что и каталог адресов и файлов, но могут сохранять данные, а элементы этих классов не статичные. В шаблоне .NET область имен System.IO выполняет роль библиотеки базовых классов, которая предназначена для производственных и исходящих услуг на базе файлов. Как и любая область имен, System.IO содержит большое количество классов, интерфейсов, нумераций, структур данных и их передачи. В таблице ниже представлены основные классовые типы данных: Классовые типы Характеристика Хранилище/содержание каталогов Классовые типы данных помогают управлять системой структуры каталогов. Информация про накопитель Этот класс данных предоставляет детальную информацию про накопители, которые содержатся в компьютере. Файловий поток Класс данных предоставляет Вам файл прямого доступа с информацией в виде потока байтов. Файл/сведения про файл Классовые типы данных руководят файлами, которые содержатся в компьютере. Путь Этот класс выполняет операции в System.String, в котором содержится информация про файл и каталог независимо от платформы. Устройство двойного считывания/устройство двойного введения информации Классовые типы позволяют Вам сохранять и находить простые типы данных в виде двойных значений. Поток считывания/поток введения Этот класс используется для сохранения текстовой информации в файле. Строчная последовательность считывания/строчная последовательность введения информации Эти классовые типы данных также работают с текстовой информацией. Однако, базовая система хранилища – скорее, строчный буфер, чем физический файл. Поток буферизации В этом типе можно лишь временно хранить поток байтов. Вы можете разместить данные в хранилище позже. В System.IO содержится класс DriveInfo, чтобы руководить системой диска во время произведения разных операций. Класс DriveInfo предоставляет детальную и полную информацию про количество дисков, общее пространство на жёстком диске, свободное пространство, название диска, состояние готовности и другое. Обратите внимание на следующую программу, которая показывает основные дисководы: DriveInfo[] di = DriveInfo.GetDrives(); Console.WriteLine(«Total Partitions»); foreach(DriveInfo items in di) < Console.WriteLine(items.Name); >Следующие фрагменты кода отдельно выполняют все другие операции класса DriveInfo. using System; using System.IO; namespace DiskPartition < class Program < static void Main(string[] args) < DriveInfo[] di = DriveInfo.GetDrives(); Console.WriteLine("Total Partitions"); Console.WriteLine("---------------------"); foreach(DriveInfo items in di) < Console.WriteLine(items.Name); >Console.Write(«\nEnter the Partition::»); string ch = Console.ReadLine(); DriveInfo dInfo = new DriveInfo(ch); Console.WriteLine(«\n»); Console.WriteLine(«Drive Name::<0>«, dInfo.Name); Console.WriteLine(«Total Space::<0>«, dInfo.TotalSize); Console.WriteLine(«Free Space::<0>«, dInfo.TotalFreeSpace); Console.WriteLine(«Drive Format::<0>«, dInfo.DriveFormat); Console.WriteLine(«Volume Label::<0>«, dInfo.VolumeLabel); Console.WriteLine(«Drive Type::<0>«, dInfo.DriveType); Console.WriteLine(«Root dir::<0>«, dInfo.RootDirectory); Console.WriteLine(«Ready::<0>«, dInfo.IsReady); Console.ReadKey(); > > > После разработки этой программы, она отображает каждую деталь дисковода и конкретные дисководы, как показано ниже: Работа с каталогами Чтобы производить операции с каталогами, то есть создавать и удалять данные, шаблон .NET содержит два элементарных класса: DirectoryInfo и Directory. Классовый тип DirectoryInfо Класс DirectoryInfo содержит серию методов создания, удаления, перемещения и перечень каталогов и подкаталогов. В следующем кодовом примере отображена информация относительно временного каталога. DirectoryInfo di = new DirectoryInfo(@»D:\temp»); Console.WriteLine(«*******Direcotry Informations*******\n\n»); Console.WriteLine(«Full Name=<0>«, di.FullName); Console.WriteLine(«Root=<0>«, di.Root); Console.WriteLine(«Attributes=<0>«, di.Attributes); Console.WriteLine(«Creation Time=<0>«, di.CreationTime); Console.WriteLine(«Name=<0>«, di.Name); Console.WriteLine(«Parent=<0>«, di.Parent); Кодовый пример производит информацию относительно временного каталога, который содержится на диске D: Допускается, что путь, пройденный конструктором времени класса DirectoryInfo существует. Но если Вы попробуете работать с несуществующим каталогом, то общая среда выполнения языков CLR исключит это действие. Чтобы создать каталог, сначала проверьте, нет ли таких исключений. DirectoryInfo di = new DirectoryInfo(@»D:\temp\xyz»); di.Create(); При помощи программ и при использовании метода CreateSubdirectory можно также увеличить структуру каталога. В следующем кодовом примере показано, как создается каталог на диске D, а потом в D:\ajay\: DirectoryInfo di = new DirectoryInfo(@»D:\»); di.CreateSubdirectory(«ajay»); di.CreateSubdirectory(@»ajay\ajay11″); Класс каталога Класс каталога выполняет почти те же функции, что и класс DirectoryInfo. Класс каталога, как правило, возвращает строчные данные, а не типизированые объекты класса DirectoryInfo. В следующем примере показано, как удалять каталог и подкаталог на диске D. static void Main(string[] args) < DirectoryInfo di = new DirectoryInfo(@"d:\abc"); Console.WriteLine("Name:<0>«, di.FullName); Console.Write(«Are you sure to Delete:»); string str = Console.ReadLine(); if (str == «y») < Directory.Delete(@"d:\abc", true); >Console.Write(«Deleted. «); > Считывание и введение информации в файл Операции считывания и введения информации происходят при использовании файлового объекта. Следующий фрагмент кода считывает текстовый файл, размещенный в компьютере. private void button1_Click(object sender, EventArgs e) < try < textBox2.Text = File.ReadAllText(txtPath.Text); >catch (FileNotFoundException) < MessageBox.Show("File not Found. "); >> Сначала пользователя спрашивают, правда ли он желает действовать в выбранном им направлении. Позже, когда настанет очередь файла, метод ReadAllText считывает всю текстовую информацию с файла и отображает ее за текстовым полем. Кроме того, используя класс File, к файлу, с которого считывается информация, можно добавить что-то свое, кроме самого текста, как показано ниже. File.WriteAllText(@»d:\test.txt», textBox2.Text); Этот класс выбирает такой путь, что сохранит файл и способ введения данных как, например, текстовое поле или другой способ. На следующих изображениях показан процесс считывания текстового файла после того, как был выбран соответствующий шаг: Поток Благодаря .NET такие классы, как FileStream, StreamReader/Writer, BinaryReader/Writer могут считывать данные и вводить их в файл. В основном, такой поток информации демонстрирует фрагмент данных, который переходит от начального места до указаного. Таким образом, он способствует взаимодействию последовательности байтов, несмотря на вид устройства, на котором хранятся байты. Методы Характеристика Считывание/считывание байтов Считывает информацию про количество байтов с исходящей точки. Введение/введение байтов Вводит информацию про количество байтов в исходящую точку. Поиск Определяет позицию в исходящей точке. Расположение Определяет текущую позицию в текущем потоке информации. Размер Меняет размер потока информации на байты. Заполнитель Обновляет основное хранилище данных вместе с текущим буфером, а потом устанавливает новый. Выход Закрывает текущий поток информации и предоставляет информацию, связанную с этим потоком. Файловый поток Обновление файлового потока используют, чтобы считывать и вводить информацию в файл. Для того, чтобы создать файловый поток, сначала нужно иметь доступ к необходимому файлу. Затем открыть файл и определить путь получения доступа к файлу. Наконец, выбрать общий каталог, в котором Вы хотите ограничить доступ к файлу. Перечисления Значения Режим доступа к файлу Создает, добавляет, открывает, приостанавливает — OpenOrCreate Доступ к файлу Считывает, вводит — ReadWrite Общий каталог Передает, считывает, вводит — ReadWrite Класс файлового потока может считывать или вводить только один байт или же массив байта. Вам нужно будет раскодировать классовый тип System.String соответствующим массивом байта. Область System.Text определяет закодированый тип, чтобы потом выбрать метод закодирования или раскодирования текстового фрагмента в массив байта. Но закодированый массив байта сохраняется в файле способом FileStream.Write. Чтобы возвратить байт назад на накопитель, нужно вернуться на начальное место и использовать метод ReadByte. Затем Вам следует отобразить строчный массив байта и закодированый текстовый фрагмент на компьютере. using(FileStream fs = new FileStream(@»d:\ajay123.doc», FileMode.Create)) < string msg = "first program"; byte[] byteArray = Encoding.Default.GetBytes(msg); fs.Write(byteArray, 0, byteArray.Length); fs.Position = 0; byte[] rFile = new byte[byteArray.Length]; for (int i = 0; i < byteArray.Length; i++) < rFile[i] = (byte)fs.ReadByte(); Console.WriteLine(rFile[i]); >Console.WriteLine(Encoding.Default.GetString(rFile)); > Двойное считывание и двойное введение информации Классовый тип BinaryReader и Writer позволит Вам считывать и вводить дискретную информацию в указанный поток в компактном двойном формате. Классовый тип BinaryWriter определяет нужный способ введения информации, чтобы разместить ее в указанный поток. Элементы Характеристика Классовый тип Ввод Считывает элемент к текущему потоку Двойное введение Поисковик Определяет позицию в текущем потоке Двойное введение Закрытие Не допускает двойное считывание Двойное введение Заполнитель Заполняет двойной поток Двойное введение Символьный считыватель Возвращает доступные элементы, не направляет их в поток Двойное считывание Считыватель Считывает указаный ряд байтов или других элементов и сохраняет их во входящем массиве данных Двойное считывание ​ В следующих примерах показано, как вводится определенная информация к новому файлу champu.dat, используя BinaryWriter. Далее информация считывается в то время, как классовый тип BinaryReader применяет целый ряд способов. class Program < static void Main(string[] args) < // writing FileInfo fi = new FileInfo("champu.dat"); using (BinaryWriter bw = new BinaryWriter(fi.OpenWrite())) < int x = 007; string str = "hello champu ,one day you will become doomkatu"; bw.Write(x); bw.Write(str); >//Reading FileInfo f = new FileInfo(«champu.dat»); using (BinaryReader br = new BinaryReader(fi.OpenRead())) < Console.WriteLine(br.ReadInt32()); Console.WriteLine(br.ReadString()); >Console.ReadLine(); > > Строчное считывание и введение данных Можно использовать StringWriter и StringReader, чтобы поставлять текстовую информацию на поток запоминающего устройства. Вы в этом убедитесь, когда добавите информацию в виде символов к указаному буферу. На следующих кодовых примерах изображено, что лучше вводить блок строчных данных в StringWriter, чем в файл, размещенный на жестком диске. static void Main(string[] args) < // writing using (StringWriter sw = new StringWriter()) < sw.WriteLine("helloooooooooooooooooooo"); // Reading using (StringReader sr = new StringReader(sw.ToString())) < string input = null; while ((input = sr.ReadLine()) != null) < Console.WriteLine(input); >> > > Вывод Данная статья начинается со вступительной части про файловую систему .NET и содержит детальное описание ее иерархических классов. Благодаря статье Вы выучили, как управлять физическим файлом и каталогом на жестком диске, используя классовые типы File и Directory. Было детально рассмотрено классовый тип Stream. Область System.IO содержит ряд устройств введения и считывания информации, как, например, FilStream, BinaryStream, StringStream и другие. Статья рассказывает про доступ к информации и ее ввод.

Акція «Виграй Power Bank від FEX.NET»

Автор: Редакция ITVDN

Дорогие друзья! Приглашаем вас принять участие в розыгрыше подарков от FEX. NET. У вас есть шанс выиграть один из 3 power bank-ов или одну из 4 виртуальных флешек! Подробнее о подарках, которые мы будем разыгрывать: Три брендированных зарядных устройства Mi Power bank 2 с емкостью батареи 10 000 mAh. Четыре виртуальные флешки FEX. NET. Данная флешка является ваучером, который имеет уникальный код и дает доступ к 1 ТБ хранилища на 3 месяца. Чтобы стать участником акции, нужно: Подписаться на YouTube канал ITVDN Подписаться на FEX. NET в Facebook Поделиться любым видео с канала ITVDN в одной из социальных сетей (Fb, VK, Google+) * Заполнить анкету участника акции * На момент проведения розыгрыша ваша стена в социальной сети должна быть открыта, чтобы мы смогли проверить выполнение условий акции. Определение победителей будет проходить в прямом эфире на YouTube канале ITVDN с помощью сервиса random.org в два этапа: 14 февраля 2018 года в 16:00 мы определим 4 победителей, которые получат виртуальные флешки FEX. NET 22 февраля 2018 года в 16:00 будут определены 3 победителя, которые получат power bank-и. Информация о спонсоре FEX. NET — это облачный сервис хранения и передачи файлов. С FEX.NET вы экономите место на компьютере и телефоне, можете пересылать файлы до 200 ГБ каждый без ограничений по скорости, смотреть фото и видео онлайн – без необходимости скачивать. Прямо в браузере вы можете просматривать файлы разных типов — включая файлы Photoshop, Illustrator, аудиозаписи в wav и других lossless-форматах. На FEX.NET можно загружать что угодно: исходники, макеты, базы данных, библиотеки, образы дисков, не говоря уже о фильмах в 4К или Blu-ray. Вам даже не обязательно ждать, пока догрузятся файлы – вы сразу получаете ссылку-ключ, и можете делиться файлами с кем пожелаете. Ключ объекта на FEX.NET – это код из 12 цифр. Ключ можно переслать в смс-сообщении, написать на бумажке или просто продиктовать. Вы можете запомнить ключи к самым важным файлам и делиться данными даже если под рукой нет компьютера или телефона. Никто не сможет увидеть ваши файлы без ключа. Более того, вы можете установить на объект пароль, сделать ключ временным, или сам объект приватным – тогда файлы будут доступны только вам, даже если вы уже поделились ключом и паролем. Каждому пользователю FEX.NET доступен сразу 1 терабайт хранилища. Этого хватит большинству пользователей ПК. Чтобы “забить” терабайт, нужно еще постараться! С другой стороны, вы можете пользоваться облаком на нескольких девайсах сразу, сохраняя все важные файлы в одном месте. Нативные приложения FEX.NET доступны для Windows, MacOS, Android, iOS, а также на телевизорах с функцией Smart TV. Приложения делают сервис удобнее и открывают новые, не всегда очевидные возможности. Так, с помощью FEX Backup вы можете импортировать данные из других облачных хранилищ. Для этого зайдите в настройки программы и выберите для бекапа локальную папку Яндекс.Диска, Google Drive или OneDrive. Все файлы из этих “облачных” папок будут дополнительно копироваться в отдельные объекты на FEX.NET. Просто и удобно. Теперь о стоимости. Временное хранение данных (до 7 дней) бесплатно. Если вы хотите просто переслать большие файлы, то недели хватит с головой. Если вам нужно постоянное облако, покупаете аккаунт FEX Plus и храните ваши файлы 30 дней или дольше. 1 ТБ хранилища всего за $1 в месяц. Будет еще дешевле, если попасть на акцию или купить сразу на год. Итак, FEX. NET – кросплатформенное облачное хранилище с предпросмотром файлов, неограниченной скоростью, повышенной безопасностью, поддержкой файлов до 200 ГБ каждый и с целым терабайтом памяти на борту. Стоит попробовать! Участвуйте в акции и выигрывайте подарки от FEX.NET!

Топ-5 кращих фреймворків для Python-розробників

Автор: Редакция ITVDN

Сейчас трудно представить себе любого девелопера без использования фреймворков. Здесь вы найдёте 5 лучших и наиболее признанных фреймворков для Python-разработчиков. Что такое framework? Говоря простым языком, фреймворк — набор инструментов для программиста. Фреймворк существенно упрощает разработку за счёт готовых решений и чётко выделенной структуры разработки приложений, сайтов. При использовании фреймворка вы значительно сэкономите себе время, ведь вам не придётся тратить его на решение рутинных задач программирования. Вместо этого вы сможете уделить внимание непосредственно разработке, сократив потраченное время с нескольких недель до пары дней. При использовании framework’a вы будете совершать меньше ошибок из-за невнимательности, и ваш синтаксис станет лучше. Кроме того, каждый framework оснащён собственной системой безопасности, которая защитит вас от случайной поломки программы. Большинство фреймворков являются бесплатными и имеют открытый код, хотя некоторые придётся покупать. Представляем вашему вниманию 5 лучших фреймворков для разработки на Python. Django «Классический» Python-framework, Django серьезно упрощает разработку за счёт большого количества доступных функций и паттернов. Имеет открытый код и предлагает большое количество возможных решений. Django относится к так называемым full-stack фреймворкам, которые универсальны и содержат все стандартные функции и шаблоны. К ним относится: аутентификация, маршрутизация, миграция баз данных, ORM и прочие. Django можно использовать для администрирования содержимого сайтов, аутентификации, RSS. Он отлично подойдёт для создания сайтов. Фреймворк работает с основными БД: MySQL, SQLite, PostgreSQ, Oracle. При необходимости можно установить специальные драйверы для подключения других баз данных. В целом этот фреймворк можно считать универсальным для Python-разработчиков. Он имеет большую базу шаблонов и на ура справляется со стандартными задачами, а также может помочь в решении нестандартных. Имеет полностью переведённую на русский язык техническую документацию. С хорошим переводом. Flask Платный мини-фреймворк, который предоставляет прочную основу для создания веб-приложений. Вмещается в один файл и легко устанавливается, пригодится в создании мелких и средних проектов, но не подойдёт для крупных из-за недостатка шаблонов и готовых решений. Предоставляет готовые шаблоны для маршрутизации, поддержку безопасных кукисов, WSGI 1.0. Имеет встроенный дебаггер и сервер для HTTP-разработки. Сервер поддерживает fapws3, GAEM, CherryPy, BJoem. Pyramid Бесплатный фреймворк типа «всё включено», разработан для приложений на основе Питона. Универсален и подойдёт как для создания небольших, так и больших проектов. Легок в установке, понятен, не тормозит. Имеет минималистичный дизайн. Имеет большое количество готовых шаблонов, в основном рассчитанных на разработчиков API. Умеет генерировать URL, помогает при аутентификации и авторизации пользователей, удобен для создания однофайловых приложений. Отлично подходит для тестирования и отладки. Twisted Создан для решения специальных задач сетевых разработчиков. Быстр, бесплатен, сокращает время разработки сервисов в несколько раз. Создан на базе Deferred, которая упрощает обслуживание сетевых запросов и обработку ошибок. Одно из главных оружий сетевого разработчика. Не подойдёт для разработки типичных веб-приложений из-за своих шаблонов и структуры. Twisted используется для разработки небольших асинхронных программ. Поддерживает большинство сетевых форматов: TCP, UDP, SSL/TLS, Domain sockets; умеет работать с сетевыми протоколами: HTTP, NNTP, XMPP, IMAP, IRC, FTP, SSH и прочими. Ещё больше модулей и форматов можно подключить с помощью драйверов. Имеет дополнительные структуры: Unit test (с поддержкой системы Deferred), Processor pools и т.д. Tornado Асинхронный фреймворк и одновременно сетевая библиотека по типу Twisted. Справляется с классической проблемой С10k (то есть может обрабатывать свыше 10 000 поступающих сетевых запросов). Представляет из себя солянку из Django, Flask и Twisted, но при этом быстрее их. Имеет встроенные шаблоны для аутентификации и авторизации, с поддержкой внедрения других шаблонов (например, Google), не блокирующийся HTTP-клиент. Справляется с длинными запросами (long polling’ами), имеет поддержку web-сокетов. Используется разработчиками, которые создают масштабные сетевые приложения с большой нагрузкой и высокими требованиями к производительности. Каждый год количество новых фреймворков постоянно растёт, но некоторые из них уже несколько лет держатся на плаву, периодически изменяясь. Эти пять уже признаны чуть ли не классикой, и начать изучение мира фреймворков стоит именно с них. Потом вы сможете перейти на более специфические, предназначенные для решения определённых задач. Если вы изучаете программирование на Python и хотите освоить самые популярные фреймворки, смотрите видеоуроки ITVDN для Python-разработчиков, а также смотрите записи вебинаров на YouTube канале ITVDN.

На ITVDN новий курс — UX/UI Design мобільних додатків

Автор: Редакция ITVDN

Привет, друзья! Сегодня у нас хорошая новость для всех, кто интересуется UX/UI дизайном — в каталоге ITVDN появился новый курс “UX/UI Design мобильных приложений”. В современном мире графический дизайн — это не только захватывающие дух картинки и цепляющие логотипы, но и проектирование одновременно красочных и вместе с тем удобных пользовательских интерфейсов. UX/UI Designer — специалист, который совмещает в себе две роли: 1. Проектирует пользовательское взаимодействие с интерфейсом и то, какие шаги ему нужно совершить, чтобы сделать что-то (UX — опыт пользователя). 2. Определяет, как будет выглядеть каждый из предпринимаемых пользователем шагов (UI — интерфейс пользователя). Курс «UX/UI Design мобильных приложений» позволит вам получить необходимый набор знаний для разработки дизайна приложения в целом и дизайна удобных для пользователя мобильных приложений в частности. С использованием такого инструмента как Figma, в этом курсе будут реализованы и рассмотрены все этапы и циклы разработки: от вайрфрейма и прототипа, до создания пользовательского интерфейса, предназначенного под конкретную платформу или ряд платформ. Также, будут разобраны трендовые гайдлайны современности, специфика темных тем и кроссплатформенность. Автор курса — Владислав Шевченко, UX/UI дизайнер. В записанных уроках Владислав делится своим опытом по созданию грамотных и удобных дизайнов, а также рассказывает о специфике работы с техниками UX/UI дизайна в мобильных приложениях. Структура курса: Основы мобильного приложения Вайрфреймы и их типы Material Design для Android приложения: часть 1 Material Design для Android приложения: часть 2 Human Interface Guideline для iOS приложения Темная тема Сравнение дизайна Android и iOS Кастомный дизайн для кроссплатформенного приложения Web и Mobile Упаковывание приложения Чему вы научитесь на этом курсе: Ориентироваться в цикле разработки дизайна. Понимать специфику Google material design для Android и Human Interface Guidelines для iOS приложения, особенности тактильности, минимализма, цвета, типографики и иконографики. Понимать особенности кроссплатформенных, гибридных, нативных приложений, сильные и слабые стороны каждого подхода. Понимать особенности темной темы, когда стоит ее применять и какие цели она преследует в Android и iOS. Использовать Figma для построения дизайна мобильного приложения. Создавать вайрфреймы, прототипы, понимать ошибки прототипирования и особенности UX архитектуры. Использовать визуальный язык и его принципы. Понимать принципы упаковки приложения для Appstore и Play Market, их отличия, плюсы и минусах каждой платформы, понимать, как готовить продукт к публикации. Предварительные требования Необходимый бэкграунд для понимания материала курса: предварительное знакомство с графическим редактором Figma (желательно), знакомство с различными мобильными платформами, наличие тяготения к созданию эффектных и удобных UX/UI дизайнов. Смотрите первый урок курса в свободном доступе. В настоящее время в пакете подписки доступны только первые три урока курса, остальные еще проходят стадию проверки перед публикацией и будут доступны в полном объеме к середине ноября. Если вы желаете провести ознакомление с графическим редактором Figma, можете просмотреть наши вебинары: “Создание дизайна лендинга с Figma”, “Веб-дизайн с Figma. Легкий старт”. Также вас могут заинтересовать: “UX дизайн на практике. Прототипирование и вангирование”, “UX дизайн и архитектура”. Для более точного понимания предметной области рекомендуем к просмотру вебинар “Как стать веб-дизайнером с нуля”. Если вы определились с профессией и хотите незамедлительно начать свой путь к становлению UX/UI дизайнером, предлагаем к прохождению следующие курсы: UX/UI Design Starter и UX/UI Design Essential.

Онлайн конференція Web Design Day

Автор: Редакция ITVDN

Первого августа пройдет онлайн конференция Web Design Day. Руководители студий, арт директора и признанные дизайнеры презентуют свежие кейсы и дадут чёткие советы. За один день сидя перед экранном ноутбука или смартфона вы сможете получить порцию знаний и вдохновения. С подробной программой конференции можно ознакомиться на сайте компании-организатора. Сегодня самая приятная цена билета. Cпешите зарегистрироваться! http://webdesign.uwcua.com/?utm_source=CyberBionicSystematics&utm_medium=email&utm_campaign=webdesignday

Створення UI в Android додатках за допомогою Material Design.

Автор: Євген Мица

  1. Основы Material Design (введение, компоненты, конфигурация проекта).
  2. Верхние компоненты экрана Android-приложения (App Bar, Toolbar).
  3. Нижние компоненты экрана Android-приложения (Bottom App Bar, Bottom Navigation, Bottom Sheet).
  4. Отображение и ввод текста (Material Text View, TextInputLayout).
  5. Кнопки (Material Button, Floating Action Button).
  6. Информативные компоненты (Alert Dialog, Snackbar).
  7. Меню и навигация (Overflow Menu, Popup Menu).
  8. Стилизация компонентов.

Верно ли что python идеально подходит для написания драйверов устройств

Автор: Олег Кулигін

Відео урок познайомить слухача з новими можливостями написання асинхронного коду, які з’явилися з виходом версії п’ятої мови програмування С#. У відео уроці будуть показані приклади застосування нової мовної конструкції asyns і await, а також буде продовжено тему багатопоточності.

Атрибути в C#

Автор: Олег Кулигін

У цьому відео уроці ви навчитеся створювати атрибути користувача в мові C#. Ви вивчите термінологію, яка стосується атрибутів, навчитеся використовувати іменовані та позиційні параметри в атрибутах користувача. Розгляньте основні системні атрибути та побачите приклади їх використання, розберете основи аспектно-орієнтованого програмування.

Функції у C++

Автор: Володимир Виноградов

Метою уроку є розгляд функції у C++ та їх видів.
C# Поглиблений

Автор: Олександр Шевчук

Відеокурс C# для професіоналів орієнтований на глибоке вивчення платформи Microsoft .NET Framework та мови C#. У цьому курсі Ви дізнаєтеся, що таке рефлексія та атрибути, серіалізація та збирач сміття. Також відео уроки містять опис багатьох стандартних класів, які дозволяють працювати з файловою системою, наборами даних, рядками, XML та багато іншого. Цей курс призначений для слухачів, які вже мають знання у програмуванні мовою C#. Перед переглядом відео курсу ми рекомендуємо вивчити матеріали відео курсів C# Стартовий і C# Базовий. Вивчивши матеріали відео курсу C# для професіоналів, Ви зможете впевнено використовувати C# та краще розуміти принципи роботи різних технологій платформи Microsoft.

Как создавать интерфейс в C#

Автор: Богдан Бондарук

В данном видео уроке C# How To рассматривается создание интерфейса в C#.
Ковариантность массивов в C#

Автор: Богдан Бондарук

В данном видео уроке C# How To рассказывается об ковариантности массивов в C#.
MongoDB & C#

Автор: Віталій Лі

Навчитися використовувати MongoDB у додатках C#. Ознайомитись з можливістю застосування програми Postman для тестування програм.

Методы в C#

Автор: Олександр Шевчук

Методы — одна из важных тем данного видео курса. На этом уроке Вы узнаете, зачем нужны методы в языке C#. Научитесь создавать собственные методы и использовать их.

C++ | Урок №3 Переменные C++.

В этом уроке, рассматривается — «Переменные в C++». Работа с переменными. Типы используемых переменных в С++. Что такое переменная? Для чего они используются? Изучайте программирование и информационные технологии на нашем онлайн ресурсе ITVDN.

Простой Python. Современный стиль программирования [Билл Любанович] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!

Modern Computing in Simple Packages

Boston Farnham Sebastopol

Python
Современный стиль программирования
Второе издание

ББК 32.973.2-018.1
УДК 004.43
Л93

Любанович Билл
Л93 Простой Python. Современный стиль программирования. 2-е изд. — СПб.: Питер,
2021. — 592 с.: ил. — (Серия «Бестселлеры O’Reilly»).
ISBN 978-5-4461-1639-3
«Простой Python» познакомит вас с одним из самых популярных языков программирования. Книга
идеально подойдет как начинающим, так и опытным программистам, желающим добавить Python
к списку освоенных языков.
Любому программисту нужно знать не только язык, но и его возможности. Вы начнете с основ
Python и его стандартной библиотеки. Узнаете, как находить, загружать, устанавливать и использовать
сторонние пакеты. Изучите лучшие практики тестирования, отладки, повторного использования кода
и получите полезные советы по разработке. Примеры кода и упражнения помогут в создании приложений для различных целей.

16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)

ББК 32.973.2-018.1
УДК 004.43

Права на издание получены по соглашению с O’Reilly. Все права защищены. Никакая часть данной книги не может
быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может
гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные
ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов,
ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернетресурсы были действующими.

ISBN 978-1492051367 англ.

Authorized Russian translation of the English edition of Introducing Python 2E
ISBN 9781492051367 © 2020 Bill Lubanovic.
This translation is published and sold by permission of O’Reilly Media, Inc.,
which owns or controls all rights to publish and sell the same.
© Перевод на русский язык ООО Издательство «Питер», 2021
© Издание на русском языке, оформление ООО Издательство «Питер»,
2021
© Серия «Бестселлеры O’Reilly», 2021

Краткое содержание
Введение. 26
Благодарности. 33
Об авторе. 34

Часть I. Основы Python
Глава 1. Python: с чем его едят. 36
Глава 2. Данные: типы, значения, переменные и имена. 55
Глава 3. Числа. 67
Глава 4. Выбираем с помощью оператора if. 82
Глава 5. Текстовые строки. 91
Глава 6. Создаем циклы с помощью ключевых слов while и for. 113
Глава 7. Кортежи и списки. 119
Глава 8. Словари и множества. 144
Глава 9. Функции. 166
Глава 10. Ой-ой-ой: объекты и классы. 194
Глава 11. Модули, пакеты и программы. 224

Часть II. Python на практике
Глава 12. Обрабатываем данные. 242
Глава 13. Календари и часы. 271
Глава 14. Файлы и каталоги. 283
Глава 15. Данные во времени: процессы и конкурентность. 302

6 Краткое содержание

Глава 16. Данные в коробке: надежные хранилища. 327
Глава 17. Данные в пространстве: сети. 368
Глава 18. Распутываем Всемирную паутину. 400
Глава 19. Быть питонщиком. 431
Глава 20. Пи-Арт. 474
Глава 21. За работой. 487
Глава 22. Python в науке. 503

Приложения
Приложение А. Аппаратное и программное обеспечение для начинающих
программистов. 520
Приложение Б. Установка Python 3. 530
Приложение В. Нечто совершенно иное: async. 538
Приложение Г. Ответы к упражнениям. 544
Приложение Д. Вспомогательные таблицы. 587
Эпилог. 591

Оглавление
Введение. 26
Для кого эта книга. 27
Что нового во втором издании. 27
Структура книги. 28
Версии Python. 31
Условные обозначения. 31
Использование примеров кода. 32
От издательства. 32
Благодарности. 33
Об авторе. 34

Часть I. Основы Python
Глава 1. Python: с чем его едят. 36
Тайны. 36
Маленькие программы. 38
Более объемная программа. 40
Python в реальном мире. 44
Python против языка с планеты Х. 45
Почему же Python. 48
Когда не стоит использовать Python. 49
Python 2 против Python 3. 50
Установка Python. 51
Запуск Python. 51
Интерактивный интерпретатор. 51
Файлы Python. 52
Что дальше. 53

Момент просветления. 53
Читайте далее. 54
Упражнения. 54
Глава 2. Данные: типы, значения, переменные и имена. 55
В Python данные являются объектами. 55
Типы. 56
Изменчивость. 57
Значения-литералы. 58
Переменные. 58
Присваивание. 60
Переменные — это имена, а не локации. 61
Присваивание нескольким именам. 64
Переназначение имени. 64
Копирование. 64
Выбираем хорошее имя переменной. 65
Читайте далее. 66
Упражнения. 66
Глава 3. Числа. 67
Булевы значения. 67
Целые числа. 68
Числа-литералы. 68
Операции с целыми числами. 69
Целые числа и переменные. 71
Приоритет операций. 73
Системы счисления. 74
Преобразования типов. 76
Насколько объемен тип int. 78
Числа с плавающей точкой. 79
Математические функции. 80
Читайте далее. 81
Упражнения. 81
Глава 4. Выбираем с помощью оператора if. 82
Комментируем с помощью символа #. 82
Продлеваем строки с помощью символа \. 83
Сравниваем с помощью операторов if, elif и else. 84
Что есть истина. 87
Выполняем несколько сравнений с помощью оператора in. 88

Новое: I Am the Walrus. 89
Читайте далее. 90
Упражнения. 90
Глава 5. Текстовые строки. 91
Создаем строки с помощью кавычек. 91
Создаем строки с помощью функции str(). 94
Создаем escape-последовательности с помощью символа \. 94
Объединяем строки с использованием символа +. 96
Размножаем строки с помощью символа *. 96
Извлекаем символ с помощью символов [ ]. 97
Извлекаем подстроки, используя разделение. 98
Измеряем длину строки с помощью функции len(). 100
Разделяем строку с помощью функции split(). 100
Объединяем строки с помощью функции join(). 101
Заменяем символы с использованием функции replace(). 101
Устраняем символы с помощью функции strip(). 102
Поиск и выбор. 103
Регистр. 104
Выравнивание. 105
Форматирование. 105
Старый стиль: %. 106
Новый стиль: используем символы <> и функцию format(). 108
Самый новый стиль: f-строки. 110
Что еще можно делать со строками. 111
Читайте далее. 111
Упражнения. 111
Глава 6. Создаем циклы с помощью ключевых слов while и for. 113
Повторяем действия с помощью цикла while. 113
Прерываем цикл с помощью оператора break. 114
Пропускаем итерации, используя оператор continue. 114
Проверяем, завершился ли цикл раньше, с помощью блока else. 115
Выполняем итерации с использованием ключевых слов for и in. 115
Прерываем цикл с помощью оператора break. 116
Пропускаем итерации, используя оператор continue. 116
Проверяем, завершился ли цикл раньше, с помощью блока else. 116
Генерируем числовые последовательности с помощью функции range(). 117
Прочие итераторы. 118
Читайте далее. 118
Упражнения. 118

Глава 7. Кортежи и списки. 119
Кортежи. 119
Создаем кортежи с помощью запятых и оператора (). 120
Создаем кортежи с помощью функции tuple(). 121
Объединяем кортежи с помощью оператора +. 121
Размножаем элементы с помощью оператора * . 122
Сравниваем кортежи. 122
Итерируем по кортежам с помощью for и in. 122
Изменяем кортеж. 122
Списки. 123
Создаем списки с помощью скобок []. 123
Создаем список или преобразуем в список с помощью функции list(). 123
Создаем список из строки с использованием функции split(). 124
Получаем элемент с помощью конструкции [смещение]. 124
Извлекаем элементы с помощью разделения. 125
Добавляем элемент в конец списка с помощью функции append(). 126
Добавляем элемент на определенное место с помощью функции insert(). 126
Размножаем элементы с помощью оператора *. 127
Объединяем списки с помощью метода extend() или оператора +. 127
Изменяем элемент с помощью конструкции [смещение]. 128
Изменяем элементы с помощью разделения. 128
Удаляем заданный элемент с помощью оператора del. 129
Удаляем элемент по значению с помощью функции remove(). 129
Получаем и удаляем заданный элемент с помощью функции pop(). 129
Удаляем все элементы с помощью функции clear(). 130
Определяем смещение по значению с помощью функции index(). 130
Проверяем на наличие элемента в списке с помощью оператора in. 131
Подсчитываем количество включений значения с помощью .
функции count(). 131
Преобразуем список в строку с помощью функции join(). 131
Меняем порядок элементов с помощью функций sort() или sorted(). 132
Получаем длину списка с помощью функции len(). 133
Присваиваем с помощью оператора =. 133
Копируем списки с помощью функций copy() и list() или путем .
разделения. 134
Копируем все с помощью функции deepcopy(). 134
Сравниваем списки . 135
Итерируем по спискам с помощью операторов for и in. 136

Итерируем по нескольким последовательностям с помощью .
функции zip(). 137
Создаем список с помощью списковых включений. 138
Списки списков. 140
Кортежи или списки. 141
Включений кортежей не существует. 141
Читайте далее. 142
Упражнения. 142
Глава 8. Словари и множества. 144
Словари. 144
Создаем словарь с помощью <>. 144
Создаем словарь с помощью функции dict(). 145
Преобразуем с помощью функции dict(). 146
Добавляем или изменяем элемент с помощью конструкции [ключ]. 146
Получаем элемент словаря с помощью конструкции [ключ] .
или функции get(). 148
Получаем все ключи с помощью функции keys(). 148
Получаем все значения с помощью функции values(). 149
Получаем все пары «ключ — значение» с помощью функции items(). 149
Получаем длину словаря с помощью функции len(). 149
Объединяем словари с помощью конструкции <**a, **b>. 149
Объединяем словари .
с помощью функции update(). 150
Удаляем элементы по их ключу с помощью оператора del. 151
Получаем элемент по ключу и удаляем его с помощью функции pop(). 151
Удаляем все элементы с помощью функции clear(). 151
Проверяем на наличие ключа с помощью оператора in. 152
Присваиваем значения с помощью оператора =. 152
Копируем значения с помощью функции copy(). 152
Копируем все с помощью функции deepcopy() . 153
Сравниваем словари. 154
Итерируем по словарям с помощью for и in. 154
Включения словарей. 155
Множества. 156
Создаем множество с помощью функции set(). 157
Преобразуем другие типы данных с помощью функции set(). 157
Получаем длину множества с помощью функции len(). 158
Добавляем элемент с помощью функции add(). 158
Удаляем элемент с помощью функции remove(). 158

Итерируем по множествам с помощью for и in. 158
Проверяем на наличие значения с помощью оператора in. 158
Комбинации и операторы. 159
Включение множества. 162
Создаем неизменяемое множество с помощью функции frozenset(). 162
Структуры данных, которые мы уже рассмотрели. 163
Создание крупных структур данных. 164
Читайте далее. 164
Упражнения. 165
Глава 9. Функции. 166
Определяем функцию с помощью ключевого слова def. 166
Вызываем функцию с помощью скобок. 167
Аргументы и параметры. 167
None — это полезно. 169
Позиционные аргументы. 170
Аргументы — ключевые слова. 171
Указываем значение параметра по умолчанию. 171
Получаем/разбиваем аргументы — ключевые слова с помощью символа *. 172
Получаем/разбиваем аргументы — ключевые слова с помощью .
символов **. 174
Аргументы, передаваемые только по ключевым словам. 175
Изменяемые и неизменяемые аргументы. 176
Строки документации. 176
Функции — это объекты первого класса. 177
Внутренние функции. 179
Анонимные функции: лямбда-выражения. 181
Генераторы. 182
Функции-генераторы. 182
Включения генераторов. 183
Декораторы. 183
Пространства имен и область определения. 186
Использование символов _ и __ в именах. 188
Рекурсия. 188
Асинхронные функции. 190
Исключения. 190
Обрабатываем ошибки с помощью операторов try и except. 191
Создаем собственные исключения. 192
Читайте далее. 193
Упражнения. 193

Глава 10. Ой-ой-ой: объекты и классы. 194
Что такое объекты. 194
Простые объекты. 195
Определяем класс с помощью ключевого слова class. 195
Атрибуты. 196
Методы. 197
Инициализация. 197
Наследование. 198
Наследование от родительского класса. 199
Переопределение методов. 200
Добавление метода. 201
Получаем помощь от своего родителя с использованием .
метода super(). 202
Множественное наследование. 203
Примеси. 205
В защиту self. 205
Доступ к атрибутам. 206
Прямой доступ. 206
Геттеры и сеттеры. 206
Свойства для доступа к атрибутам. 207
Свойства для вычисляемых значений. 209
Искажение имен для безопасности. 209
Атрибуты классов и объектов. 210
Типы методов. 211
Методы объектов. 211
Методы классов. 212
Статические методы. 212
Утиная типизация. 213
Магические методы. 215
Агрегирование и композиция. 218
Когда использовать объекты, а когда — что-то другое. 218
Именованные кортежи. 219
Классы данных. 221
attrs. 222
Читайте далее. 222
Упражнения. 222
Глава 11. Модули, пакеты и программы. 224
Модули и оператор import. 224
Импортируем модуль. 224

Импортируем модуль с другим именем. 226
Импортируем только самое необходимое. 226
Пакеты. 227
Путь поиска модуля. 228
Относительный и абсолютный импорт. 229
Пакеты пространств имен. 229
Модули против объектов. 230
Достоинства стандартной библиотеки Python. 231
Обрабатываем отсутствующие ключи с помощью функций setdefault()
и defaultdict(). 231
Подсчитываем элементы с помощью функции Counter(). 233
Упорядочиваем по ключу с помощью OrderedDict(). 235
Стек + очередь == deque. 235
Итерируем по структурам кода с помощью модуля itertools. 236
Красиво выводим данные на экран с помощью функции pprint(). 238
Работаем со случайными числами. 238
Нужно больше кода. 239
Читайте далее. 240
Упражнения. 240

Часть II. Python на практике
Глава 12. Обрабатываем данные. 242
Текстовые строки: Unicode. 243
Строки формата Unicode в Python 3. 244
Кодирование и декодирование с помощью кодировки UTF-8. 246
Кодирование. 247
Декодирование. 249
Сущности HTML. 250
Нормализация. 251
Подробная информация. 252
Текстовые строки: регулярные выражения. 253
Ищем точное начальное совпадение с помощью функции match(). 254
Ищем первое совпадение с помощью функции search(). 255
Ищем все совпадения, используя функцию findall(). 255
Разбиваем совпадения с помощью функции split(). 256
Заменяем совпадения с помощью функции sub(). 256
Шаблоны: специальные символы. 256
Шаблоны: использование спецификаторов. 258
Шаблоны: указываем способ вывода совпадения. 261

Бинарные данные. 261
bytes и bytearray. 262
Преобразуем бинарные данные с помощью модуля struct. 263
Другие инструменты для работы с бинарными данными. 266
Преобразуем байты/строки с помощью модуля binascii. 267
Битовые операторы. 267
Аналогия с ювелирными изделиями. 268
Читайте далее. 268
Упражнения. 268
Глава 13. Календари и часы. 271
Високосный год. 272
Модуль datetime. 273
Модуль time. 275
Читаем и записываем дату и время. 277
Все преобразования. 281
Альтернативные модули. 281
Читайте далее. 282
Упражнения. 282
Глава 14. Файлы и каталоги. 283
Ввод информации в файлы и ее вывод из них. 283
Создаем или открываем файлы с помощью функции open(). 284
Записываем в текстовый файл с помощью функции print(). 284
Записываем в текстовый файл с помощью функции write(). 285
Считываем данные из текстового файла, используя функции read(), .
readline() и readlines(). 286
Записываем данные в бинарный файл с помощью функции write(). 288
Читаем бинарные файлы с помощью функции read(). 289
Закрываем файлы автоматически с помощью ключевого слова with. 289
Меняем позицию с помощью функции seek(). 289
Отображение в памяти. 291
Операции с файлами. 292
Проверяем существование файла с помощью функции exists(). 292
Проверяем тип с помощью функции isfile(). 292
Копируем файлы, используя функцию copy(). 293
Изменяем имена файлов с помощью функции rename(). 293
Создаем ссылки с помощью функции link() или symlink(). 293
Изменяем разрешения с помощью функции chmod(). 294
Изменение владельца файла с помощью функции chown(). 294
Удаляем файл с помощью функции remove(). 294

Каталоги. 295
Создаем каталог с помощью функции mkdir(). 295
Удаляем каталог, используя функцию rmdir(). 295
Выводим на экран содержимое каталога с помощью функции listdir(). 295
Изменяем текущий каталог с помощью функции chdir(). 296
Перечисляем совпадающие файлы, используя функцию glob(). 296
Pathname. 297
Получаем путь с помощью функции abspath(). 298
Получаем символьную ссылку с помощью функции realpath(). 298
Построение пути с помощью функции os.path.join(). 298
Модуль pathlib. 298
BytesIO и StringIO. 299
Читайте далее. 301
Упражнения. 301
Глава 15. Данные во времени: процессы и конкурентность. 302
Программы и процессы. 302
Создаем процесс с помощью модуля subprocess. 303
Создаем процесс с помощью модуля multiprocessing. 304
Убиваем процесс, используя функцию terminate(). 305
Получаем системную информацию с помощью модуля os. 306
Получаем информацию о процессах с помощью модуля psutil. 306
Автоматизация команд. 307
Invoke. 307
Другие вспомогательные методы для команд. 308
Конкурентность. 308
Очереди. 309
Процессы. 310
Потоки. 311
Concurrent.futures. 314
Зеленые потоки и gevent. 317
twisted. 320
asyncio. 321
Redis. 321
Помимо очередей. 325
Читайте далее. 326
Упражнения. 326
Глава 16. Данные в коробке: надежные хранилища. 327
Плоские текстовые файлы. 327
Текстовые файлы, дополненные пробелами. 328

Структурированные текстовые файлы. 328
CSV. 328
XML. 331
Примечание о безопасности XML . 333
HTML. 333
JSON. 334
YAML. 337
Tablib. 338
Pandas. 338
Конфигурационные файлы. 340
Бинарные файлы. 341
Электронные таблицы. 341
HDF5. 341
TileDB. 342
Реляционные базы данных. 342
SQL. 343
DB-API. 345
SQLite. 345
MySQL. 347
PostgreSQL. 347
SQLAlchemy. 348
Другие пакеты для работы с базами данных. 354
Хранилища данных NoSQL. 354
Семейство dbm. 354
Memcached. 355
Redis. 356
Документоориентированные базы данных. 363
Базы данных временных рядов. 364
Графовые базы данных. 365
Другие серверы NoSQL. 365
Полнотекстовые базы данных. 366
Читайте далее. 366
Упражнения. 366
Глава 17. Данные в пространстве: сети. 368
TCP/IP. 368
Сокеты. 370
scapy. 374
Netcat. 374

Паттерны для работы с сетями. 375
Паттерн «Запрос — ответ». 375
ZeroMQ. 375
Другие инструменты обмена сообщениями. 380
Паттерн «Публикация — подписка». 380
Redis. 380
ZeroMQ. 382
Другие инструменты «Публикации — подписки». 383
Интернет-сервисы. 384
Доменная система имен. 384
Модули Python для работы с электронной почтой. 385
Другие протоколы. 385
Веб-сервисы и API. 385
Сериализация данных. 386
Сериализация с помощью pickle. 387
Другие форматы сериализации. 388
Удаленные вызовы процедур. 388
XML RPC. 389
JSON RPC. 390
MessagePack RPC. 391
Zerorpc. 392
gRPC. 393
Twirp. 393
Инструменты удаленного управления. 394
Работаем с большими объемами данных. 394
Hadoop. 394
Spark. 395
Disco. 395
Dask. 395
Работаем в облаках. 396
Amazon Web Services. 397
Google. 397
Microsoft Azure. 397
OpenStack. 398
Docker. 398
Kubernetes. 398
Читайте далее. 398
Упражнения. 399

Глава 18. Распутываем Всемирную паутину. 400
Веб-клиенты. 401
Тестируем с помощью telnet. 402
Тестируем с помощью curl. 403
Тестируем с использованием httpie. 404
Тестируем с помощью httpbin. 405
Стандартные веб-библиотеки Python. 405
За пределами стандартной библиотеки: requests. 407
Веб-серверы. 408
Простейший веб-сервер Python. 409
Web Server Gateway Interface (WSGI). 410
ASGI. 411
apache. 411
NGINX. 412
Другие веб-серверы Python. 413
Фреймворки для работы веб-серверами. 413
Bottle. 414
Flask. 416
Django. 420
Другие фреймворки. 421
Фреймворки для работы с базами данных. 421
Веб-сервисы и автоматизация. 422
Модуль webbrowser. 422
Модуль webview. 423
REST API. 424
Поиск и выборка данных. 424
Scrapy. 425
BeautifulSoup. 425
Requests-HTML. 426
Давайте посмотрим фильм. 426
Читайте далее. 429
Упражнения. 429
Глава 19. Быть питонщиком. 431
О программировании. 431
Ищем код на Python. 432
Установка пакетов. 432
pip. 433
virtualenv. 434

pipenv. 434
Менеджер пакетов. 434
Установка из исходного кода. 435
Интегрированные среды разработки. 435
IDLE. 435
PyCharm. 435
IPython. 436
Jupyter Notebook. 438
JupyterLab. 438
Именование и документирование. 438
Добавление подсказок типов. 440
Тестирование кода. 440
Программы pylint, pyflakes, flake8 или PEP-8. 441
Пакет unittest. 443
Пакет doctest. 447
Пакет nose. 448
Другие фреймворки для тестирования. 449
Постоянная интеграция. 449
Отладка кода. 450
Функция print(). 450
Отладка с помощью декораторов. 451
Отладчик pdb. 452
Функция breakpoint(). 458
Записываем в журнал сообщения об ошибках. 458
Оптимизация кода. 460
Измеряем время. 461
Алгоритмы и структуры данных. 464
Cython, NumPy и расширения C. 465
PyPy. 465
Numba. 466
Управление исходным кодом. 467
Mercurial. 467
Git. 467
Распространение ваших программ. 470
Клонируйте эту книгу. 470
Как узнать больше. 470
Книги. 471
Сайты. 471
Группы. 472

Конференции. 472
Вакансии, связанные с Python. 472
Читайте далее. 473
Упражнения. 473
Глава 20. Пи-Арт. 474
Двумерная графика. 474
Стандартная библиотека. 474
PIL и Pillow. 475
ImageMagick. 478
Трехмерная графика. 478
Трехмерная анимация. 479
Графические пользовательские интерфейсы (GUI). 479
Диаграммы, графики и визуализация. 481
Matplotlib. 481
Seaborn. 483
Bokeh. 485
Игры. 485
Аудио и музыка. 486
Читайте далее. 486
Упражнения. 486
Глава 21. За работой. 487
The Microsoft Office Suite. 487
Выполняем бизнес-задачи. 488
Обработка бизнес-данных. 489
Извлечение, преобразование и загрузка. 489
Валидация данных. 493
Дополнительные источники информации. 493
Пакеты для работы с бизнес-данными с открытым исходным кодом . 494
Python в области финансов. 494
Безопасность бизнес-данных. 495
Карты. 495
Форматы. 496
Нарисуем карту на основе шейп-файла. 496
Geopandas. 498
Другие пакеты для работы с картами. 500
Приложения и данные. 501
Читайте далее. 502
Упражнения. 502

Глава 22. Python в науке. 503
Математика и статистика в стандартной библиотеке. 503
Математические функции. 503
Работа с комплексными числами. 505
Рассчитываем точное значение чисел с плавающей точкой .
с помощью модуля decimal. 506
Выполняем вычисления для рациональных чисел с помощью .
модуля fractions. 507
Используем Packed Sequences с помощью модуля array. 507
Обрабатываем простую статистику с помощью модуля statistics. 508
Перемножение матриц. 508
Python для науки. 508
NumPy. 508
Создаем массив с помощью функции array(). 509
Создаем массив с помощью функции arange(). 510
Создаем массив с помощью функций zeros(), ones() и random(). 511
Изменяем форму массива с помощью метода reshape(). 512
Получаем элемент с помощью конструкции []. 513
Математика массивов. 514
Линейная алгебра. 514
Библиотека SciPy. 515
Библиотека SciKit. 516
Pandas. 516
Python и научные области. 517
Читайте далее. 518
Упражнения. 518

Приложения
Приложение А. Аппаратное и программное обеспечение для начинающих
программистов. 520
Аппаратное обеспечение. 520
Компьютеры пещерных людей. 520
Электричество. 521
Изобретения. 521
Идеальный компьютер. 522
Процессор. 522
Память и кэш. 522
Хранение. 522
Ввод данных. 523

Вывод данных. 523
Относительное время доступа. 523
Программное обеспечение. 524
Вначале был бит. 524
Машинный язык. 524
Ассемблер. 525
Высокоуровневые языки. 525
Операционные системы. 526
Виртуальные машины. 527
Контейнеры. 527
Распределенные вычисления и сети. 527
Облако. 528
Kubernetes. 528
Приложение Б. Установка Python 3. 530
Проверьте свою версию Python. 530
Установка стандартной версии Python. 531
macOS. 532
Windows. 534
Linux или Unix. 535
Установка менеджера пакетов pip . . 535
Установка virtualenv. 535
Другие способы работы с пакетами. 536
Устанавливаем Anaconda. 536
Приложение В. Нечто совершенно иное: async. 538
Сопрограммы и циклы событий. 538
async против…. 542
Асинхронные фреймворки и серверы. 542
Приложение Г. Ответы к упражнениям. 544
1. Python: с чем его едят. 544
2. Типы данных, значения, переменные и имена. 545
3. Числа. 545
4. Выбираем с помощью if. 546
5. Текстовые строки. 547
6. Создаем циклы с помощью ключевых слов while и for. 551
7. Кортежи и списки. 552
8. Словари и множества. 556
9. Функции. 559
10. Ой-ой-ой: объекты и классы. 560

11. Модули, пакеты и программы. 564
12. Обрабатываем данные. 566
13. Календари и часы. 571
14. Файлы и каталоги. 572
15. Данные во времени: процессы и конкурентность. 573
16. Данные в коробке: устойчивые хранилища. 574
17. Данные в пространстве: сети. 577
18. Распутываем Всемирную паутину. 584
19. Быть питонщиком. 585
20. Пи-Арт. 585
21. За работой. 586
22. Python в науке. 586
Приложение Д. Вспомогательные таблицы. 587
Приоритет операторов. 587
Строковые методы. 588
Изменение регистра. 588
Поиск. 588
Изменение. 588
Форматирование. 589
Тип строки. 589
Атрибуты модуля string. 589
Эпилог. 591

С любовью к Мэри, Тому и Рокси,
а также Кэрин и Эрику.

Введение
Как и обещает название, книга познакомит вас с одним из самых популярных языков программирования — Python. Издание предназначено как для начинающих
программистов, так и для тех, кто уже имеет опыт в написании программ и просто
желает добавить Python к списку доступных ему языков.
В большинстве случаев изучать компьютерный язык проще, чем человеческий, —
в нем меньше двусмысленностей и исключений, которые приходится запоминать.
Python — один из самых последовательных и понятных компьютерных языков, он
сочетает в себе простоту изучения, простоту использования и большую выразительную силу.
Компьютерные языки состоят из данных — аналогами в разговорной речи являются существительные — и инструкций (или кода), которые можно сравнить
с глаголами. Изучить нужно будет и то и другое: вы освоите основы кода и структур данных и узнаете, как их объединить. Затем перейдете к более сложным темам,
а программы, которые вы будете читать и писать, станут длиннее и сложнее. Если
провести аналогию с работой по дереву, мы начнем с молотка, гвоздей и небольших
кусков древесины, а во второй половине книги обратимся к более специализированным инструментам, которые можно сравнить с токарными станками и другими
более сложными устройствами.
Вам нужно знать не только сам язык, но и то, что с его помощью можно делать.
Мы начнем с языка Python и его стандартной библиотеки, готовой к работе прямо
«из коробки». Помимо этого, я покажу вам, как находить, загружать, устанавливать
и использовать качественные сторонние пакеты: касаться узких тем или рассматривать сложные трюки не буду, а сделаю акцент на том, что после десяти лет работы
с Python считаю действительно полезным.
Несмотря на то что книга представляет собой введение в Python, в ней мы
затронем и несколько дополнительных тем, с которыми, на мой взгляд, следует
ознакомиться еще на начальном этапе. Работе с базами данных и Интернетом мы
тоже уделим внимание, однако не станем забывать, что технологии меняются очень
быстро — теперь от программиста на Python общество ждет знаний об облачных
технологиях, машинном обучении и создании потоков событий: основную информацию по этим темам вы также здесь найдете.
Язык Python имеет некоторые специальные функции, работающие лучше,
чем адаптированные стили программирования из других языков. Например, использование ключевого слова for и итераторов — более прямой способ создания

цикла: пользоваться им гораздо удобнее, нежели вручную инкрементировать переменную-счетчик.
Когда вы изучаете что-то новое, бывает трудно определиться с тем, какие слова
являются терминами и какие понятия на самом деле важны. Иначе говоря, тестировалась ли эта функциональность? Я выделю некоторые термины и понятия, которые
имеют особое значение в Python. Код, написанный на языке Python, можно будет
увидеть даже в самых первых главах.

Подобные примечания я буду делать, когда что-то может быть непонятным или же
существует более питонский способ решить проблему.

Python неидеален. Я обращу ваше внимание на то, что кажется сомнительным
и чего следует избегать, и предложу альтернативные варианты.
По некоторым темам, таким как наследование объектов, MVC или проектирование REST для работы с Интернетом, мое мнение может отличаться от общепринятого. Вам самим решать, к кому прислушаться.

Для кого эта книга
Эта книга для всех, кто заинтересован в изучении одного из самых популярных во
всем мире языков программирования. Наличие или отсутствие опыта с другими
языками программирования не имеет значения.

Что нового во втором издании
Что изменилось со времени выхода первого издания?
‰‰Добавилось около 100 страниц, в том числе с изображением котиков.
‰‰Количество глав удвоилось, но сами главы стали короче.
‰‰В начале книги появилась глава, посвященная типам данных, переменным

‰‰Рассмотрены новые особенности Python, такие как f-строки.
‰‰Рекомендованы новые или улучшенные сторонние библиотеки.
‰‰Во всей книге присутствуют новые примеры кода.
‰‰Для начинающих разработчиков добавлен текст с описанием аппаратного и про-

‰‰Более опытные разработчики могут ознакомиться с библиотекой asyncio.
‰‰Рассмотрен новый стек технологий: контейнеры, облачные технологии, наука

о данных и машинное обучение.

28 Введение
‰‰Добавлены подсказки, с помощью которых вы сможете найти работу програм-

миста на Python.

Что не изменилось? Примеры, в которых используются плохие стихотворения
и утки. Они с нами навсегда.

Структура книги
В первой части излагаются основы языка программирования Python: главы 1–11
следует читать по порядку. Я оперирую простейшими структурами данных и кода,
постепенно составляя из них более сложные и реалистичные программы. Во второй
части (главы 12–22) показывается, каким образом язык программирования Python
используется в определенных прикладных областях, таких как Интернет, базы данных, сети и т. д.: эти главы можно читать в любом порядке.
Вот краткое содержание всех глав и приложений и обзор новых терминов, с которыми вы там встретитесь.
‰‰Глава 1. «Python: с чем его едят». Компьютерные программы не так уж и отлича-

ются от других инструкций, с которыми вы сталкиваетесь каждый день. Мы рассмотрим небольшие программы, написанные на Python. Они продемонстрируют
синтаксис языка, его возможности и способы применения в реальном мире.
Вы узнаете, как запустить программу внутри интерактивного интерпретатора
(оболочки), а также из текстового файла, сохраненного на вашем компьютере.

‰‰Глава 2. «Данные: типы, значения, переменные и имена». В компьютерных языках

используются данные и инструкции. Компьютер по-разному хранит и обрабатывает разные типы данных. Их значения или можно изменять (такие типы называются изменяемыми), или нельзя (неизменяемые типы). В программе, написанной
на Python, данные могут быть представлены как литералами (числами вроде 78
или текстовыми строками вроде «waffle»), так и именованными переменными.
В отличие от многих других языков программирования Python относится к переменным как к именам, и это влечет за собой некоторые важные последствия.

‰‰Глава 3. «Числа». В этой главе показываются простейшие типы данных, применя-

емые в языке программирования Python: булевы переменные, целые числа и числа
с плавающей точкой. Вы также изучите простейшую математику. В примерах
этой главы интерактивный интерпретатор Python используется как калькулятор.

‰‰Глава 4. «Выбираем с помощью оператора if». С существительными (типами дан-

ных) и с глаголами (программными структурами) мы поработаем в нескольких
главах. Код, написанный на Python, обычно выполняется по одной строке за
раз: от начала программы до ее конца. Структура if позволяет запускать разные
строки кода исходя из результата сравнения определенных данных.

‰‰Глава 5. «Текстовые строки». Здесь мы обратимся к существительным и миру

текстовых строк. Вы научитесь создавать, объединять, изменять и получать
строки, а также выводить их на экран.

Введение 29
‰‰Глава 6. «Создаем циклы с помощью ключевых слов while и for». Снова глаголы.
Вы научитесь создавать цикл двумя способами — с помощью for и с помощью
while, а также узнаете, что такое итераторы — одно из основных понятий Python.
‰‰Глава 7. «Кортежи и списки». Пришло время рассмотреть первые структуры

данных более высокого уровня: списки и кортежи. Они представляют собой
последовательности значений, которыми вы будете пользоваться как конструктором Lego для того, чтобы создавать более сложные структуры. Вы научитесь
проходить по ним с помощью итераторов, а также быстро создавать списки
с помощью списковых включений.

‰‰Глава 8. «Словари и множества». Словари и множества позволяют сохранять

данные не по позиции, а по их значению. Вы увидите, насколько это удобно, —
данная особенность Python станет одной из ваших любимых.

‰‰Глава 9. «Функции». Соединяйте структуры данных из предыдущих глав со струк-

турами кода, чтобы выполнять сравнение, выборку или повторение операций.
Упаковывайте код в функции и обрабатывайте ошибки с помощью исключений.

‰‰Глава 10. «Ой-ой-ой: объекты и классы». Слово «объект» недостаточно конкрет-

но, но имеет большое значение во многих компьютерных языках, в том числе
и в Python. Если вы уже занимались объектно-ориентированным программированием на других языках, то в сравнении с ними Python покажется вам более
простым. В этой главе объясняется, когда следует использовать объекты и классы,
а когда лучше выбрать другой путь.

‰‰Глава 11. «Модули, пакеты и программы». Вы узнаете, как перейти к более круп-

ным структурам кода — модулям, пакетам и программам, а также где можно разместить код и данные, как ввести и вывести данные, обработать различные параметры,
просмотреть стандартную библиотеку Python и то, что находится вне ее.

‰‰Глава 12. «Обрабатываем данные». Вы научитесь профессионально обрабатывать

данные и управлять ими. Эта глава полностью посвящена текстовым и двоичным
данным, особенностям использования символов стандарта Unicode, а также
поиску текста с помощью регулярных выражений. Вы познакомитесь с типами
данных byte и bytearray — соперниками типа string, в которых содержатся необработанные бинарные значения вместо текстовых символов.

‰‰Глава 13. «Календари и часы». С датой и временем работать бывает непросто.

Здесь мы рассмотрим распространенные проблемы и способы их решения.

‰‰Глава 14. «Файлы и каталоги». Простые хранилища данных используют файлы

и каталоги. В этой главе речь пойдет о создании и использовании файлов и каталогов.

‰‰Глава 15. «Данные во времени: процессы и конкурентность». Это первая глава,

в которой мы приступаем к изучению системы. Начнем с данных во времени —
вы научитесь использовать программы, процессы и потоки для того, чтобы выполнять больше работы за один промежуток времени (конкурентность). Среди
прочего будут упомянуты последние добавления в async (более подробно они
рассматриваются в приложении В).

30 Введение
‰‰Глава 16. «Данные в коробке: надежные хранилища». Данные могут храниться

в простых файлах и каталогах внутри файловых систем и структурироваться
с помощью распространенных форматов, таких как CSV, JSON и XML. Однако
по мере того, как объем и сложность данных будут расти, вам, возможно, придется
использовать базы данных — как традиционные реляционные, так и современные
базы данных NoSQL.
‰‰Глава 17. «Данные в пространстве: сети». Отправляйте ваш код и данные через
пространство по сетям с помощью служб, протоколов и API. В качестве примеров
рассматриваются как низкоуровневые сокеты, библиотеки обмена сообщениями
и системы массового обслуживания, так и развертывание в облачных системах.
‰‰Глава 18. «Распутываем Всемирную паутину». Всемирной сети посвящена отдельная глава, в которой рассматриваются клиенты, серверы, извлечение данных,
API и фреймворки. Вы научитесь искать сайты и извлекать из них данные, а затем разработаете реальный сайт, используя параметры запросов и шаблоны.
‰‰Глава 19. «Быть питонщиком». В этой главе содержатся советы для программистов, пишущих на Python: вы получите рекомендации по установке (с помощью
pip и virtualenv), использованию IDE, тестированию, отладке, журналированию,
контролю исходного кода и документации. Узнаете также, как найти и установить
полезные пакеты сторонних разработчиков, как упаковать свой код для повторного использования и где получить более подробную информацию.
‰‰Глава 20. «Пи-Арт». При помощи языка программирования Python можно создавать произведения искусства: в графике, музыке, анимации и играх.
‰‰Глава 21. «За работой». У Python есть специальные приложения для бизнеса:
визуализация данных (графики, графы и карты), безопасность и регулирование.
‰‰Глава 22. «Python в науке». За последние несколько лет Python стал главным

языком науки, он используется в математике, статистике, физике, биологии и медицине. Его сильные стороны — наука о данных и машинное обучение. В этой главе
демонстрируются возможности таких инструментов, как NumPy, SciPy и Pandas.
‰‰Приложение А. «Аппаратное и программное обеспечение для начинающих программистов». Если вы новичок в мире программирования, из этого приложения
вы можете узнать, как на самом деле работает аппаратное и программное обеспечение и что означают некоторые термины, с которыми в дальнейшем вам
придется сталкиваться.
‰‰Приложение Б. «Установка Python 3». Если вы еще не установили Python 3 на
свой компьютер, в этом приложении вы найдете информацию о том, как это
сделать независимо от того, какая операционная система у вас установлена:
Windows, Mac OS/X, Linux или другой вариант Unix.
‰‰Приложение В. «Нечто совершенно иное: async». В разных релизах Python добавляется функциональность для работы с асинхронностью — разобраться с ней
может быть сложно. Я упоминаю о ней в тех главах, в которых заходит речь об
асинхронности, но в этом приложении рассматриваю тему более подробно.
‰‰Приложение Г. «Ответы к упражнениям». Здесь содержатся ответы на упражнения, приведенные в конце каждой главы. Не подглядывайте туда, пока не по-

пробуете решить задачи самостоятельно, в противном случае вы рискуете превратиться в козленочка.
‰‰Приложение Д. «Вспомогательные таблицы». В этом приложении содержатся
справочные данные.

Версии Python
Языки программирования со временем изменяются — разработчики добавляют в них
новые возможности и исправляют ошибки. Примеры этой книги написаны и протестированы для версии Python 3.7. Версия 3.7 является наиболее современной на
момент выхода этой книги, и о самых значимых нововведениях я расскажу. Версия 3.8
вышла в конце 2019 года — я рассмотрю самую ожидаемую функциональность1.
Узнать, что и когда было добавлено в язык программирования Python, можно, посетив
страницу https://docs.python.org/3/whatsnew/: там представлена техническая информация.
Она, скорее всего, покажется трудной для понимания, если вы только начинаете изучать Python, но может пригодиться в будущем, если вам нужно будет писать программы для компьютеров, на которых установлены другие версии Python.

Условные обозначения
В этой книге приняты следующие шрифтовые соглашения.
Курсив
Им обозначаются новые термины и понятия.
Моноширинный шрифт

Используется в листингах программного кода, а также для имен и расширений
файлов, названий путей, имен функций, команд, баз данных, переменных,
операторов и ключевых слов.
Курсивный моноширинный шрифт

Указывает текст, который необходимо заменить пользовательскими значениями
или значениями, определяемыми контекстом.

Так оформлены совет, предложение или замечание.

Таким образом оформлено предупреждение.

Оригинальное издание выпущено до выхода версии 3.8. Текущая версия — 3.8.2. — Примеч. ред.

Использование примеров кода
Примеры кода и упражнения, приведенные в тексте, доступны для загрузки по адресу https://github.com/madscheme/introducing-python. Эта книга написана, чтобы помочь
вам в работе: вы можете применить код, содержащийся в ней, в ваших программах
и документации и не связываться с нами, чтобы спросить разрешения, если собираетесь воспользоваться небольшим фрагментом кода. Например, если вы пишете
программу и кое-где вставляете в нее код из книги, никакого особого разрешения
не требуется. Однако если вы запишете на диск примеры из книги и начнете раздавать или продавать такие диски, разрешение на это получить необходимо. Если вы
цитируете это издание, отвечая на вопрос, или воспроизводите код из него в качестве
примера, разрешения не требуется. Но если включаете значительный фрагмент кода
из данной книги в документацию по вашему продукту, необходимо разрешение.
Ссылки на источник приветствуются, но не обязательны. В такие ссылки обычно
включаются название книги, имя ее автора, название издательства и номер ISBN.
Например: «Простой Python. Современный стиль программирования. 2-е изд. Билл
Любанович. Питер, 2020. 978-5-4461-1639-3».
При любых сомнениях относительно превышения разрешенного объема использования примеров кода, приведенных в данной книге, можете обращаться к нам по
адресу permissions@oreilly.com.

От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию
о наших книгах.

Благодарности
Искренне благодарю обозревателей и читателей, помогавших сделать эту книгу лучше: Корбина Коллинза, Чарльза Гивра, Нейтана Стокса, Дейва Джорджа и Майка
Джеймса.

Об авторе
Билл Любанович программировал в операционной системе Unix с 1977 года, разрабатывал GUI с 1981 года, базы данных — с 1990 года, а веб-разработкой занимался
с 1993 года. Кроме того:
‰‰1982–1988 (Intran) — разрабатывал приложение Metaform на первой коммерче-

ской графической рабочей станции;
‰‰1990–1995 (Northwest Airlines) — написал визуальную систему управления доходами, а также первый тест для анализа онлайн-маркетинга в Сети;
‰‰1994 (Tela) — стал сооснователем одного из первых интернет-провайдеров;
‰‰1995–1999 (WAM!NET) — разрабатывал веб-доски сообщений и 3М Digital
Media Repository;
‰‰1999–2005 (Mad Scheme) — стал сооснователем компании, занимающейся вебразработкой и хостингом;
‰‰2005 (O’Reilly) — в соавторстве написал несколько глав книги Linux Server
Security1;
‰‰2007 (O’Reilly) — в соавторстве написал книгу Linux System Administration2;
‰‰2010–2013 (Keep) — разработал и построил службы Core Services, соединяющие
веб-фронтенды и бэкенды, работающие с базами данных;
‰‰2014 (O’Reilly) — написал книгу Introducing Python (первое издание)3;
‰‰2015–2016 (Internet Archive) — работал над API и адаптацией Wayback Machine
на Python;
‰‰2016–2018 (CrowdStrike) — управлял сервисами на базе Python, которые обрабатывают миллиарды ежедневных событий, связанных с безопасностью.
Билл счастливо живет в горах Сангре-де-Сасквоч в штате Миннесота со своей
чудесной семьей: женой Мэри, сыном Томом (и его женой Рокси) и дочерью Кэрин
(и ее мужем Эриком), ухаживает за кошками Ингой и Люси и котом Честером.

Bauer M. Linux Server Security, 2nd Edition. — O’Reilly, 2009.

Адельштайн Т., Любанович Б. Системное администрирование в Linux. — СПб.: Питер, 2010.

Любанович Б. Простой Python. Современный стиль программирования. — СПб.: Питер,
2019.

Python: с чем его едят

Популярными становятся только уродливые языки.
Python — исключение из этого правила.
Дональд Кнут

Тайны
Начнем с двух небольших тайн и их разгадок. Что, по-вашему, означают следующие
две строки?
(Ряд 1): (RS) K18, ssk, k1, turn work.
(Ряд 2): (WS) Sl 1 pwise, p5, p2tog, p1, turn.

Выглядит как некая компьютерная программа. На самом деле это схема для вязания — точнее, фрагмент, который описывает, как связать пятку носка. Похожие
носки показаны на рис. 1.1.

Рис. 1.1. Вязаные носки

Глава 1. Python: с чем его едят 37

Для меня эти строки имеют не больше смысла, чем судоку для одного из моих
котов, но вот моя жена совершенно точно понимает написанное. Если вы вяжете,
то тоже поймете.
Рассмотрим еще один таинственный текст, который можно увидеть записанным
на листочке из блокнота. Вы сразу поймете его предназначение, даже если и не догадаетесь о том, каким будет конечный продукт:
1/2 столовой ложки масла или маргарина;
1/2 столовой ложки сливок;
2 1/2 стакана муки;
1 чайная ложка соли;
1 чайная ложка сахара;
4 стакана картофельного пюре (охлажденного).
Перед тем как добавить муку, убедитесь, что все ингредиенты охлаждены.
Смешайте все ингредиенты.
Тщательно замесите.
Сделайте 20 шариков.
Держите их охлажденными до следующего этапа.
Для каждого шарика:
присыпьте разделочную доску мукой;
раскатайте шарик при помощи рифленой скалки;
жарьте на сковороде до подрумянивания;
переверните и обжарьте другую сторону.

Даже если вы не готовите, вы сможете распознать кулинарный рецепт: список
продуктов, за которым следуют указания по приготовлению. Но что получится
в итоге? Это лефсе, норвежский деликатес, который напоминает тортилью (рис. 1.2).
Полейте блюдо маслом, вареньем или чем-либо еще, сверните и наслаждайтесь.

Схема для вязания и рецепт имеют несколько схожих моментов:
‰‰фиксированный словарь, состоящий из слов, аббревиатур и символов: какие-то

могут быть вам знакомы, какие-то — нет;
‰‰правила, описывающие, что и где можно говорить, — синтаксис;
‰‰последовательность операций, которые должны быть выполнены в определенном

порядке;
‰‰в некоторых случаях — повторение определенных операций (цикл), например

способ приготовления каждого кусочка лефсе;
‰‰в некоторых случаях — ссылка на еще одну последовательность операций (говоря

компьютерными терминами, функцию). Например, когда вы прочтете приведенный выше рецепт, вам может понадобиться рецепт приготовления картофельного
пюре;
‰‰предполагаемое знание контекста. Рецепт подразумевает ваше знание о том, что

такое вода и как ее кипятить. Схема для вязания подразумевает, что вы умеете
держать спицы в руках;
‰‰кое-какие данные, которые нужно использовать, создать или изменить, — кар-

тофель и нитки;
‰‰инструменты, которые используются для работы с данными, — горшки, миксеры,

духовки, вязальные спицы;
‰‰ожидаемый результат. В наших примерах результатом будет предмет для ног

и предмет для желудка. Главное — не перепутать.
Как ни назови — идиомы, жаргон, — примеры их использования можно встретить
везде. Жаргон помогает сэкономить время тем, кто его знает, а для других людей
оставляет информацию совершенно непонятной. Попробуйте расшифровать колонку газеты, посвященную бриджу, если вы не играете в эту игру, или научную
статью — если вы не ученый (или ученый, но в другой области).

Маленькие программы
Подобные идеи вы встретите и в компьютерных программах, которые сами по себе
являются маленькими языками: через них люди говорят компьютеру, что делать.
Схему для вязания и рецепт я использовал для демонстрации того, что программы
не так страшны, как может показаться, — всего лишь нужно выучить верные слова
и правила.
Понять этот маленький язык гораздо легче, если в нем не очень много слов и правил и если вам не нужно изучать их все одновременно: за один раз наш мозг может
воспринять только ограниченное количество знаний.
Пришло время обратиться к настоящей программе (пример 1.1). Как вы думаете,
что она делает?

Глава 1. Python: с чем его едят 39
Пример 1.1. countdown.py
for countdown in 5, 4, 3, 2, 1, «hey!»:
print(countdown)

Если вы считаете, что это программа, написанная на языке программирования
Python, которая выводит на экран следующее:
5
4
3
2
1
hey!

то вы знаете, что Python выучить проще, чем понять рецепт или схему для вязания. К тому же тренироваться писать на этом языке вы можете, сидя за удобным
и безопасным столом и избегая опасностей вроде горячей воды и спиц.
Программа, написанная на языке программирования Python, содержит некоторое
количество специальных слов и символов: for, in, print, запятые, точки с запятой,
скобки и т. д. — все они являются важной частью синтаксиса (правил) языка.
Хорошая новость заключается в том, что Python имеет более доступный и менее
объемный синтаксис по сравнению с большинством других языков программирования: текст кажется почти понятным — как и рецепт.
Пример 1.2 — тоже небольшая программа на Python: она позволяет выбрать одно
из заклинаний Гарри Поттера, хранящееся в списке, и вывести его на экран.
Пример 1.2. spells.py
spells = [
«Riddikulus!»,
«Wingardium Leviosa!»,
«Avada Kedavra!»,
«Expecto Patronum!»,
«Nox!»,
«Lumos!»,
]
print(spells[3])

Отдельные заклинания являются в Python строками (последовательностями текстовых символов, заключенных в кавычки). Они разделены запятыми и помещены
в список — это можно определить по квадратным скобкам ([ и ]). Слово spells — это
переменная, являющаяся именем списка, — с ее помощью мы можем работать со
списком. В нашем случае на экран будет выведено четвертое заклинание:
Expecto Patronum!

Почему мы сказали 3 , если нам нужно было четвертое заклинание? Списки
Python, такие как spells, представляют собой последовательность значений, доступ
к которым осуществляется с использованием смещения от начала списка. Смещение
для первого элемента списка равно 0, а для четвертого — 3.

Люди обычно считают с единицы, поэтому считать с нуля может показаться странным. Однако в программировании удобнее оперировать смещениями, а не позициями. Да, это пример того, как компьютерная программа иногда отличается от
обычного языка.

Список — очень распространенная структура данных в языке программирования
Python. О том, как им пользоваться, будет рассказано в главе 7.
Программа из примера 1.3 выводит на экран цитату одного из участников комедийного трио The Three Stooges («Три балбеса»), однако на выбор фразы влияет
не позиция в списке, а то, кто ее сказал.
Пример 1.3. quotes.py
quotes = «Moe»: «A wise guy, huh?»,
«Larry»: «Ow!»,
«Curly»: «Nyuk nyuk!»,
>
stooge = «Curly»
print(stooge, «says:», quotes[stooge])

Если вы запустите эту небольшую программу, она выведет следующее:
Curly says: Nyuk nyuk!

quotes — переменная, которая именует словарь Python: коллекцию уникальных
ключей (в примере ключом является имя участника трио) и связанных с ними значений (в нашем примере — значимое высказывание участника «Балбесов»). Используя
словарь, вы можете сохранять элементы и выполнять их поиск по именам: зачастую
это удобнее, чем работать со списком.
В примере с заклинаниями для создания списка использовались квадратные
скобки ([ и ]), а в примере с цитатами для создания словаря — фигурные скобки
(< и >). Также мы использовали двоеточие (:) для того, чтобы связать каждый ключ
словаря с соответствующим значением. Более подробно о словарях можно прочитать в главе 8.
Надеюсь, я не перегрузил вас синтаксисом. В следующих нескольких разделах
вы познакомитесь и с другими простыми правилами.

Более объемная программа
Теперь рассмотрим что-то совершенно иное: в примере 1.4 представлена программа,
которая выполняет более сложную серию задач. Не рассчитывайте, что сразу поймете, как она работает, — книга для того и предназначена, чтоб научить вас этому!
Таким образом я даю вам возможность увидеть и прочувствовать типичную полноразмерную программу, написанную на языке Python. Если вы знаете другие языки
программирования, то можете сравнить их с Python прямо сейчас. Сможете ли вы,
не зная Python и еще не прочтя расшифровку, примерно представить, что делает
каждая строка? Вы уже видели примеры использования списка и словаря, а эта
программа демонстрирует еще несколько новых возможностей.

Глава 1. Python: с чем его едят 41

В первом издании книги программа из примера подключалась к сайту YouTube
и получала информацию о самых популярных роликах, таких как Charlie Bit My
Finger. Она хорошо работала до того момента, как компания Google отключила
поддержку этой службы. Во втором издании уже в новом примере (пример 1.4) мы
подключаемся к другому сайту, который, очевидно, просуществует гораздо дольше, — Wayback Machine из Internet Archive (http://archive.org/) (бесплатного сервиса,
сохраняющего миллиарды веб-страниц, в том числе фильмы, телешоу, музыкальные
композиции, игры и иные цифровые артефакты за последние 20 лет). Еще несколько
примеров таких веб-API вы увидите в главе 18.
Программа попросит вас ввести URL и дату. Затем она спросит у Wayback
Machine, имеется ли копия этого веб-сайта за указанную дату. Если копия есть,
API вернет информацию о ней программе, которая, в свою очередь, выведет URL
и отобразит его в веб-браузере. Суть заключается в том, чтобы увидеть, как Python
справляется с разнообразными задачами — принимает пользовательские данные,
общается с веб-сайтами в Интернете и получает от них данные, извлекает оттуда
URL и убеждает веб-браузер отобразить этот URL.
Если бы мы получали обычную веб-страницу, заполненную текстом, отформатированным как HTML, нам пришлось бы сначала придумать, как отобразить ее,
а потом выполнить много действий — все это можно радостно перепоручить веббраузеру. Мы также можем попробовать извлечь именно те данные, которые нам
нужны (более подробно о веб-скрапинге читайте в главе 18). Любой из выбранных
вариантов потребует выполнения большего количества работы и увеличит программу. Вместо этого Wayback Machine возвращает данные в формате JSON. JSON,
или JavaScript Object Notation, — это читабельный для человека текстовый формат,
который описывает типы и значения, а также выстраивает данные в определенном
порядке. Он немного похож на языки программирования и уже стал популярным
способом обмена данными между разными языками программирования и системами.
Подробнее о JSON вы узнаете в главе 12.
Программы, написанные на языке Python, могут преобразовывать текст формата
JSON в структуры данных (с которыми вы познакомитесь в следующих нескольких
главах), как если бы вы написали программу для их создания самостоятельно. Наша
небольшая программа выбирает лишь один фрагмент данных (URL старой вебстраницы, хранящейся в архиве). И опять же это полноценная программа, которую
вы можете запустить самостоятельно. Мы почти не проверяли данные на ошибки,
чтобы пример оставался коротким. Номера строк не являются частью программы
и включены только для того, чтобы вам было проще следовать описанию, представленному после кода.
Пример 1.4. archive.py
1
2
3
4
5
6
7
8

import webbrowser
import json
from urllib.request import urlopen
print(«Let’s find an old website.»)
site = input(«Type a website URL: «)
era = input(«Type a year, month, and day, like 20150613: «)
url = «http://archive.org/wayback/available?url=%s&timestamp=%s» % (site, era)

9 response = urlopen(url)
10 contents = response.read()
11 text = contents.decode(«utf-8»)
12 data = json.loads(text)
13 try:
14
old_site = data[«archived_snapshots»][«closest»][«url»]
15
print(«Found this copy: «, old_site)
16
print(«It should appear in your browser now.»)
17
webbrowser.open(old_site)
18 except:
19
print(«Sorry, no luck finding», site)

Такая небольшая программа, написанная на языке Python, делает многое с помощью всего нескольких строк. Не все термины вы уже знаете, однако сможете
познакомиться с ними в следующих главах.
1. Импортируем (делаем доступным для этой программы) весь код из модуля стандартной библиотеки, который называется webbrowser.
2. Импортируем весь код из модуля стандартной библиотеки, который называется
json.
3. Импортируем только функцию urlopen из модуля стандартной библиотеки
urllib.request.
4. Пустая строка (мы не хотим перегрузить восприятие).
5. Выводим на экран приветственный текст.
6. Выводим на экран вопрос об URL, считываем пользовательский ввод и сохраняем
это в переменной с именем site.
7. Выводим на экран еще один вопрос и на этот раз считываем год, месяц и день,
а затем сохраняем их в переменной с именем era.
8. Создаем строковую переменную с именем url, чтобы сайт Wayback Machine искал копию требуемого сайта по дате.
9. Соединяемся с сервером, расположенным по этому адресу, и запрашиваем определенный веб-сервис.
10. Получаем ответ и присваиваем его переменной contents.
11. Дешифруем содержимое переменной contents в текстовую строку формата JSON
и приписываем ее переменной text.
12. Преобразуем переменную text в data — структуру данных языка Python, предназначенную для работы с видео.
13. Проверяем на ошибки: помещаем следующие четыре строки в блок try и, если
находим ошибку, запускаем последнюю строку программы (она идет после
ключевого слова except).
14. Получив совпадение по сайту и дате, извлекаем нужное значение из трехуровневого словаря Python. Обратите внимание на то, что в этой и двух последующих
строках используются отступы — тем самым Python легче понять, что данные
строки находятся в блоке try.

Глава 1. Python: с чем его едят 43

Выводим на экран полученный URL.
Сообщаем о том, что случится, когда выполнится следующая строка.
Отображаем полученный URL в браузере.
Если во время выполнения предыдущих строк что-то пошло не так, Python
перейдет сюда.
19. Если программа дала сбой, выводим сообщение и имя сайта, который мы искали.
Эта строка также имеет отступ, поскольку должна выполняться только в том
случае, если выполняется строка except.
Когда я сам запустил эту программу в окне терминала, то ввел URL сайта и дату
и получил следующий результат:
$ python archive.py
Let’s find an old website.
Type a website URL: lolcats.com
Type a year, month, and day, like 20150613: 20151022
Found this copy: http://web.archive.org/web/20151102055938/http://www.lolcats.com/
It should appear in your browser now.

На рис. 1.3 показано то, что появилось в моем браузере.

Рис. 1.3. Результат обращения к Wayback Machine

В предыдущем примере мы задействовали стандартные библиотечные модули (программы, включаемые в Python при установке), но совсем не обязательно

ограничиваться только ими: на языке Python написано много отличного стороннего ПО. В примере 1.5 показывается та же программа, получающая доступ к архиву
Интернета (Internet Archive), но в ней использован внешний пакет ПО для Python,
который называется requests.
Пример 1.5. archive2.py
1 import webbrowser
2 import requests
3
4 print(«Let’s find an old website.»)
5 site = input(«Type a website URL: «)
6 era = input(«Type a year, month, and day, like 20150613: «)
7 url = «http://archive.org/wayback/available?url=%s&timestamp=%s» % (site, era)
8 response = requests.get(url)
9 data = response.json()
10 try:
11
old_site = data[«archived_snapshots»][«closest»][«url»]
12
print(«Found this copy: «, old_site)
13
print(«It should appear in your browser now.»)
14
webbrowser.open(old_site)
15 except:
16
print(«Sorry, no luck finding», site)

Новая версия короче и, как мне кажется, более читабельна для большинства людей. О requests вы узнаете в главе 18, а о других авторских программах для Python
в главе 11.

Python в реальном мире
Стоит ли тратить время и силы на изучение Python? Язык программирования
Python существует примерно с 1991 года (он старше Java, но моложе С) и является
одним из пяти самых популярных языков программирования. Людям платят деньги
за написание программ на Python — очень важных и значимых, которыми мы пользуемся каждый день: Google, YouTube, Instagram, Netflix и Hulu.
Я использовал Python для создания приложений в самых разных областях.
Python имеет репутацию высокопроизводительного языка программирования, и это
особенно нравится динамично развивающимся компаниям.
Python используется во многих компьютерных приложениях, таких как:
‰‰командная строка на мониторе или в окне терминала;
‰‰пользовательские интерфейсы (Graphical User Interface, GUI), включая сетевые;
‰‰веб-приложения, как клиентские, так и серверные;
‰‰бэкенд-серверы, поддерживающие крупные популярные сайты;
‰‰облака (серверы, управляемые сторонними организациями);
‰‰приложения для мобильных устройств;
‰‰приложения для встроенных устройств.

Глава 1. Python: с чем его едят 45

Программы, написанные на Python, могут быть как одноразовыми сценариями — вы видели их ранее в этой главе, так и сложными системами, содержащими
миллионы строк.
В опросе The 2018 Python Developers’ Survey (https://www.jetbrains.com/research/
python-developers-survey-2018/) вы можете увидеть числа и графики, показывающие
текущее место языка Python в мире вычислительных машин.
Мы рассмотрим применение Python для создания сайтов, системного администрирования и манипулирования данными. Рассмотрим также использование
Python в искусстве, науке и бизнесе.

Python против языка с планеты Х
Насколько Python хорош по сравнению с другими языками программирования?
Где и когда следует использовать тот или иной язык? В этом разделе я покажу примеры кода, написанные на других языках, чтобы вы могли оценить, с чем конкурирует Python. Вы не обязаны понимать каждый из приведенных фрагментов, если
не работали с этими языками. (А когда увидите последний фрагмент, написанный
на Python, то почувствуете облегчение из-за того, что не работали с некоторыми
другими языками.) Если же вам интересен только Python — вы ничего не потеряете,
если не станете читать этот раздел.
Каждая программа должна напечатать число и немного рассказать о языке, на
котором она написана.
Если вы пользуетесь терминалом или терминальным окном, программа, которая читает то, что вы вводите, выполняет это и отображает результат, называется
программой-оболочкой. Оболочка операционной системы Windows называется
cmd (https://ru.wikipedia.org/wiki/Cmd.exe), она выполняет пакетные файлы, имеющие
расширение .bat. Для Linux и других операционных систем семейства Unix (включая macOS) существует множество программ-оболочек. Самая популярная из них
называется bash (https://www.gnu.org/software/bash/) или sh. Оболочка обладает простейшими возможностями вроде выполнения простой логики и разворачивания
символа-джокера наподобие * в полноценные имена файлов. Вы можете сохранять
команды в файлы, которые называются сценариями оболочки, и выполнять их позже.
Подобные программы могли быть в числе самых первых в вашей карьере программиста. Проблема в том, что возможности для масштабирования у сценариев оболочки
ограничиваются несколькими сотнями строк, а сами сценарии выполняются гораздо
медленнее, чем программы, написанные на других языках. В следующем фрагменте
кода демонстрируется небольшая программа-оболочка:
#!/bin/sh
language=0
echo «Language $language: I am the shell. So there.»

Если вы сохраните этот файл под именем test.sh и запустите его с помощью
команды sh test.sh, то на экране увидите следующее:
Language 0: I am the shell. So there.

Старые добрые С (https://ru.wikipedia.org/wiki/Си_(язык_программирования)) и С++
(https://ru.wikipedia.org/wiki/C++) являются довольно низкоуровневыми языками программирования, которыми пользуются в том случае, когда важна скорость. Ваша операционная система и множество других программ (включая программу python на
вашем компьютере), скорее всего, написаны на C и C++.
Эти языки программирования труднее выучить и труднее поддерживать знания в актуальном состоянии. Вам придется отслеживать множество деталей, таких
как управление памятью, что может привести к падениям программы и проблемам, которые трудно диагностировать. Так выглядит небольшая программа на
языке С:
#include
int main(int argc, char *argv[]) int language = 1;
printf(«Language %d: I am C! See? Si!\n», language);
return 0;
>

С++ происходит из одного семейства с С, но имеет несколько отличительных
особенностей:
#include
using namespace std;
int main() int language = 2;
cout >> json.dumps(now, cls=DTEncoder)
‘1361526567’

Новый класс DTEncoder является подклассом, или классом-потомком, класса
JSONEncoder. Нам нужно лишь переопределить его метод default(), добавив обработку datetime. Наследование гарантирует, что все остальное будет обработано
родительским классом.
Функция isinstance() проверяет, является ли объект obj объектом класса
datetime.datetime. Поскольку в Python все является объектом, функция isinstance()
работает везде:
>>> import datetime
>>> now = datetime.datetime.utcnow()
>>> type(now)

>>> isinstance(now, datetime.datetime)
True
>>> type(234)

>>> isinstance(234, int)
True
>>> type(‘hey’)

>>> isinstance(‘hey’, str)
True

При работе с JSON и другими форматами структурированного текста вы можете
загрузить файл в память и разместить его в структуре данных, не зная о самих
структурах заранее. Затем вы можете пройтись по структурам, используя функцию
isinstance() и методы, соответствующие типу, чтобы проверить значения структур.
Например, если один из элементов является словарем, вы можете извлечь его содержимое с помощью функций keys(), values() и items().

После того как вы сделали это сложным способом, сообщу вам, что существует
более простой способ преобразовать объекты типа datetime в JSON:
>>> import datetime
>>> import json
>>> now = datetime.datetime.utcnow()
>>> json.dumps(now, default=str)
‘»2019-04-17 21:54:43.617337″‘

Инструкция default=str указывает функции json.dumps() применить функцию
преобразования str() к тем типам данных, которые она не понимает. Это сработает,
поскольку в определении класса datetime.datetime присутствует метод __str__().

Глава 16. Данные в коробке: надежные хранилища 337

YAML
Как и JSON, YAML (http://www.yaml.org/) имеет ключи и значения, но обрабатывает
большее количество типов данных, включая дату и время. Стандартная библиотека
Python не содержит модулей, работающих с YAML, поэтому вам нужно установить
стороннюю библиотеку yaml (http://pyyaml.org/wiki/PyYAML). Функция load() преобразует строку в формате YAML к данным Python, а функция dump() предназначена
для противоположного действия.
Следующий YAML-файл, mcintyre.yaml, содержит информацию о канадском
поэте Джеймсе Макинтайре и два его стихотворения:
name:
first: James
last: McIntyre
dates:
birth: 1828-05-25
death: 1906-03-31
details:
bearded: true
themes: [cheese, Canada]
books:
url: http://www.gutenberg.org/files/36068/36068-h/36068-h.htm
poems:
— title: ‘Motto’
text: |
Politeness, perseverance and pluck,
To their possessor will bring good luck.
— title: ‘Canadian Charms’
text: |
Here industry is not in vain,
For we have bounteous crops of grain,
And you behold on every field
Of grass and roots abundant yield,
But after all the greatest charm
Is the snug home upon the farm,
And stone walls now keep cattle warm.

Такие значения, как true, false, on и off, преобразуются в булевы переменные.
Целые числа и строки преобразуются в их эквиваленты в Python. Для остального
синтаксиса создаются списки и словари:
>>> import yaml
>>> with open(‘mcintyre.yaml’, ‘rt’) as fin:
>>>
text = fin.read()
>>> data = yaml.load(text)
>>> data[‘details’]

>>> len(data[‘poems’])
2

Python на практике

Создаваемые структуры данных совпадают со структурами YAML-файла, которые в данном случае имеют глубину более одного уровня. Вы можете получить
заголовок второго стихотворения с помощью следующей ссылки:
>>> data[‘poems’][1][‘title’]
‘Canadian Charms’

PyYAML может загружать объекты Python из строк, а это опасно. Используйте метод
safe_load() вместо метода load(), если импортируете данные в формате YAML,
которым не доверяете. А лучше всегда используйте метод safe_load(). Прочтите
статью Неда Батчелдера War is peace (http://nedbatchelder.com/blog/201302/
war_is_peace.html), чтобы узнать о том, как незащищенная загрузка YAML скомпрометировала платформу Ruby on Rails.

Tablib
Теперь, когда вы прочитали все предыдущие разделы, я расскажу вам, что существует сторонний пакет, который позволяет импортировать, экспортировать и изменять
табличные данные в форматах CSV, JSON или YAML1, а также данные в Microsoft
Excel, Pandas DataFrame и некоторые другие. Вы можете установить его привычным способом (pip install tablib), а также заглянуть в документацию (http://
docs.python-tablib.org/en/master/).

Pandas
Сейчас самое время познакомиться с Pandas (https://pandas.pydata.org/) — библиотекой
Python для структурированных данных. Это отличный инструмент для решения
реальных проблем с данными. Она позволяет:
‰‰читать и записывать данные во множестве текстовых и бинарных форматов,

yy текст, поля которого разделены запятыми (CSV), символами табуляции (TSV)
или другими символами;
yy текст фиксированной длины;
yy Excel;
yy JSON;
yy таблицы HTML;
yy SQL;
yy HDF5;
yy и др. (https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html);
1

Однако на данный момент XML не поддерживается.

Глава 16. Данные в коробке: надежные хранилища 339
‰‰группировать, разбивать, объединять, разделять, сортировать, выбирать и по-

мечать;
‰‰преобразовывать типы данных;
‰‰изменять размер или форму;
‰‰обрабатывать случаи, когда данные отсутствуют;
‰‰генерировать случайные значения;
‰‰управлять временными последовательностями.

Функции чтения возвращают объект типа DataFrame (https://pandas.pydata.org/
pandas-docs/stable/reference/api/pandas.DataFrame.html). Это является стандартным пред-

ставлением для двумерных данных (которые делятся на строки и столбцы) в Pandas.
Объект этого типа похож на электронную таблицу или таблицу реляционной базы
данных. Его одномерный младший брат называется Series (https://pandas.pydata.org/
pandas-docs/stable/reference/series.html).
В примере 16.2 показывается простое приложение, которое считывает данные из
нашего файла villains.csv из примера 16.1.
Пример 16.2. Читаем данные в формате CSV с помощью Pandas
>>> import pandas
>>>
>>> data = pandas.read_csv(‘villains.csv’)
>>> print(data)
first
last
0 Doctor
No
1
Rosa
Klebb
2 Mister
Big
3
Auric Goldfinger
4
Ernst
Blofeld

Переменная data имеет тип DataFrame: у этого типа данных возможностей больше, чем у простого словаря Python. Он особенно полезен для обработки большого
количества чисел с помощью NumPy, а также для подготовки данных для машинного
обучения.
Обратитесь к разделам Getting Started (https://pandas.pydata.org/pandas-docs/stable/
getting_started/index.html) документации Pandas, чтобы узнать подробнее о ее особенностях, и к разделу 10 Minutes to Pandas (https://pandas.pydata.org/pandas-docs/stable/
getting_started/10min.html) для того, чтобы увидеть рабочие примеры.
Воспользуемся Pandas для того, чтобы создать небольшой календарь — список,
содержащий первый день первых трех месяцев 2019 года:
>>> import pandas
>>> dates = pandas.date_range(‘2019-01-01′, periods=3, freq=’MS’)
>>> dates
DatetimeIndex([‘2019-01-01’, ‘2019-02-01’, ‘2019-03-01’],
dtype=’datetime64[ns]’, freq=’MS’)

Python на практике

Создать такой календарь можно было бы и с помощью функций даты и времени, которые мы рассмотрели в главе 13. Но это намного сложнее, особенно отладка
(дата и время добавляют работы). Pandas также позволяет обрабатывать множество
особых деталей даты и времени (https://pandas.pydata.org/pandas-docs/stable/user_guide/
timeseries.html), например бизнес-месяцы и годы.
Мы еще поговорим о Pandas, когда речь пойдет о картах (см. подраздел «Geopandas»
на с. 498) и научных приложениях (см. раздел «Pandas» на с. 516).

Конфигурационные файлы
Большинство программ предлагают различные параметры или настройки. Динамические настройки могут быть переданы как аргументы программы, но долговременные настройки должны где-то храниться. Соблазн на скорую руку определить
собственный формат конфигурационного файла очень силен, но вы должны устоять.
Как правило, это бывает и неточно, и не так уж быстро. Вам нужно обслуживать
как программу-писатель, так и программу-читатель (которая иногда называется
парсером). Существуют хорошие альтернативы, которые вы можете добавить в свою
программу, включая те, что были показаны в предыдущих подразделах.
Здесь мы используем стандартный модуль configparser, который обрабатывает
файлы с расширением .ini, характерные для Windows. Такие файлы имеют разделы
с определениями ключ = значение. Так выглядит минимальный файл settings.cfg:
[english]
greeting = Hello
[french]
greeting = Bonjour
[files]
home = /usr/local
# simple interpolation:
bin = %(home)s/bin

А так выглядит код, который позволяет считать его и разместить в структурах
данных:
>>> import configparser
>>> cfg = configparser.ConfigParser()
>>> cfg.read(‘settings.cfg’)
[‘settings.cfg’]
>>> cfg

>>> cfg[‘french’][‘greeting’]
‘Bonjour’
>>> cfg[‘files’][‘bin’]
‘/usr/local/bin’

Глава 16. Данные в коробке: надежные хранилища 341

Доступны и другие опции, в том числе более мощная интерполяция. Обратитесь
к документации configparser (http://bit.ly/configparser). Если вам нужно более двух
уровней вложенности, попробуйте использовать YAML или JSON.

Бинарные файлы
Некоторые файловые форматы были разработаны для хранения определенных
структур данных и не являются ни реляционными базами данных, ни базами данных
NoSQL. В следующих подразделах рассказывается о некоторых из них.
Заполненные пробелами бинарные файлы и управление памятью. Такие файлы
похожи на заполненные пробелами текстовые файлы, но содержимое может быть
бинарным, а в качестве заполнителя может использоваться байт \x00. Каждая запись имеет фиксированный размер, как и каждое поле внутри записи. Это позволяет
легче искать нужные записи и поля с помощью функции seek(). Каждая операция
с данными выполняется вручную, поэтому такой подход должен применяться только
в очень низкоуровневых (близких к «железу») ситуациях.
Данные в таком формате могут быть размещены в ОЗУ с помощью стандартной
библиотеки mmap. Взгляните на примеры (https://pymotw.com/3/mmap/) и стандартную
документацию (https://docs.python.org/3.7/library/mmap.html).

Электронные таблицы
Электронные таблицы, в частности Microsoft Excel, — это широко распространенный
бинарный формат данных. Если вы можете сохранить свою таблицу в CSV-файл, то
можете считать его с помощью стандартного модуля csv, который был описан ранее.
Это распространяется на бинарный файл xls: для его считывания и записи можно
использовать стороннюю библиотеку xlrd (https://pypi.org/project/xlrd/) или tablib (она
упоминалась ранее в подразделе «Tablib» на с. 338).

HDF5
HDF5 (http://www.hdfgroup.org/why_hdf) — это бинарный формат данных, предназначенный для хранения многомерных или иерархических числовых данных. Обычно он
используется в научных целях, где быстрый случайный доступ к крупным наборам
данных (от гигабайтов до терабайтов) является распространенным требованием.
Несмотря на то что HDF5 в некоторых случаях мог бы стать хорошей альтернативой
базам данных, по каким-то причинам этот формат практически неизвестен в современном мире. Он лучше всего подходит для приложений вида WORM (write once — read
many — «запиши однажды — считай много раз»), которые не нуждаются в защите от
конфликтующих записей. Вам могут быть полезными следующие модули:
‰‰h5py — интерфейс низкого уровня с широкими возможностями. Прочтите его

документацию (http://www.h5py.org/) и код (https://github.com/h5py/h5py);

Python на практике

‰‰PyTables — интерфейс немного более высокого уровня, имеющий некоторые

особенности, характерные для баз данных. Прочтите его документацию (http://
www.pytables.org/) и код (http://pytables.github.com/).
Оба этих формата рассматриваются в главе 22 с точки зрения применения в научных приложениях, написанных на Python. Здесь я упоминаю об HDF5 затем, чтобы
у вас был под рукой нестандартный вариант на случай, когда вам нужно сохранять
и высчитывать крупные объемы данных. Хорошим примером использования этого
формата является Million Song Dataset (http://bit.ly/millionsong) с записями песен
в форматах HDF5 и SQLite.

TileDB
У формата HDF5 недавно появился последователь, который позволяет хранить
как плотные, так и разреженные массивы — TileDB (https://tiledb.com/). Установите
интерфейс Python (https://github.com/TileDB-Inc/TileDB-Py) (он включает в себя и саму
библиотеку TileDB), запустив команду pip install tiledb. Эта библиотека предназначена для работы с научными данными и приложениями.

Реляционные базы данных
Реляционным базам данных всего около 40 лет, но в компьютерном мире они используются повсеместно. Вам практически наверняка придется поработать с ними.
В эти моменты вы сможете оценить следующие их преимущества.
‰‰Доступ к данным возможен для нескольких пользователей одновременно.
‰‰Действует защита от повреждения данных пользователями.
‰‰Существуют эффективные методы сохранения и считывания данных.
‰‰Данные определены схемами и имеют ограничения.
‰‰Объединения позволяют найти отношения между различными типами данных.
‰‰Декларативный (в противоположность императивному) язык запросов SQL

(Structured Query Language).
Такие базы данных называются реляционными, поскольку они показывают
отношения между различными типами данных в форме прямоугольных таблиц.
Например, в нашем более раннем примере меню есть отношение между каждым
элементом и его ценой.
Таблица представляет собой прямоугольную сетку столбцов (полей данных)
и строк (отдельных записей), похожую на электронную таблицу. Пересечение строки и столбца называется ячейкой. Чтобы создать таблицу, необходимо указать ее имя
и порядок, имена и типы ее столбцов. Каждая строка имеет одинаковые столбцы,
хотя столбец может быть определен так, чтобы в ячейках отсутствовали данные

Глава 16. Данные в коробке: надежные хранилища 343

(null ). В примере с меню вы могли бы создать таблицу, содержащую по одной
строке для каждого продаваемого элемента. Каждый элемент имеет одинаковые
столбцы, включая и тот, который хранит цену.
Первичным ключом таблицы является столбец или группа столбцов. Значения
ключа должны быть уникальными — таким образом предотвращается ввод одинаковых данных в таблицу. Этот ключ индексируется для быстрого поиска во время
выполнения запроса. Работа индекса немного похожа на работу алфавитного указателя, который позволяет быстро найти определенный ряд.
Каждая таблица находится внутри родительской базы данных, как файлы
в каталоге. Два уровня иерархии позволяют немного лучше организовывать
данные.

Да, словосочетание «база данных» используется в разных значениях: называет
и сервер, и хранилище таблиц, и сами данные. Если вам нужно говорить обо всех
них одновременно, можно использовать термины «сервер базы данных», «база
данных» и «данные».

Если вы хотите найти строки по определенному неключевому значению, определите для столбца вторичный индекс. В противном случае база данных должна будет
выполнить сканирование таблицы — поиск нужного значения перебором всех строк.
Таблицы могут быть связаны друг с другом с помощью внешних ключей, и значения столбцов могут быть ограничены этими ключами.

SQL
SQL не является API или протоколом. Это декларативный язык: вы говорите, что
вам нужно, а не как это сделать. SQL — универсальный язык реляционных баз данных. Запросы SQL являются текстовыми строками: клиент отсылает их серверу базы
данных, а тот определяет, что с ними делать дальше.
Существует несколько стандартов определения SQL, но все поставщики баз данных добавили свои собственные настройки и расширения, что привело к появлению
множества диалектов SQL. Если вы храните данные в реляционной базе данных,
SQL дает вам некоторую переносимость данных. Однако наличие диалектов и операционных различий может усложнить перенос данных в другую базу.
Есть две основные категории утверждений SQL.
‰‰DDL (Data Definition Language — язык определения данных). Обрабатывает

создание, удаление, ограничения и разрешения для таблиц, баз данных и пользователей.
‰‰DML (Data Manipulation Language — язык манипулирования данными). Обраба-

тывает добавление данных, их выборку, обновление и удаление.

Python на практике

В табл. 16.1 перечислены основные команды SQL DDL.
Таблица 16.1. Основные команды SQL DDL
Операция

Создание базы данных

CREATE DATABASE имя_базы

CREATE DATABASE d

Выбор текущей базы данных

627 историй, чтобы узнать о кодировании

627 историй, чтобы узнать о кодировании

В этой статье объясняется, как удалить коммиты с удаленного сервера в Git.

2. Алгоритмы Java: связанный список в двоичном дереве (LeetCode)

Связанный список в двоичном дереве

3. 19 репозиториев GitHub, которые сделают вас десятикратным разработчиком

Бесценные советы о репозиториях на GitHub, которые представляют огромную ценность для разработчиков, находящихся на ранних этапах своего пути.

4. Сертификаты AWS/Azure/Google важнее сертификатов Linux

Пропустите сертификаты Linux и вместо этого используйте сертификацию AWS/Azure/Google. В наши дни практически у каждого поставщика облачных услуг есть собственная версия Linux.

5. Соглашение об именах веток Git: 7 рекомендаций, которым стоит следовать

Соглашения об именовании ветвей Git поддерживают систематический рост кодовой базы. Это помогает стратегически разделить работу.

6. Hack Reactor: признания выпускника буткемпа за 20 тысяч долларов

Hack Reactor был создан в конце 2012 года выпускниками DevBootcamp. Я рассмотрю учебную программу буткемпа и реальность, с которой сталкиваются выпускники.

7. Ruby: как читать/писать файл JSON

В Ruby чтение и запись файла JSON в хэш можно выполнить с помощью обработки файлов.

8. Async/Await в Golang: вводное руководство

Golang — это параллельный язык программирования. Он имеет мощные функции, такие как Goroutines и Channels, которые могут очень хорошо справляться с асинхронными задачами. Кроме того, горутины не являются потоками ОС, и поэтому вы можете запускать столько горутин, сколько хотите, без особых накладных расходов, размер стека начинается всего с 2 КБ. Так почему же асинхронно/ожидание? Async/Await – это удобная функция языка, предоставляющая более простой интерфейс для асинхронного программирования.

9. 5 лучших бесплатных курсов C++ для изучения программирования

Я собираюсь поделиться с вами некоторыми из лучших онлайн-курсов по изучению C++ в удобное для вас время и в любом месте и бесплатно.

10. Как развернуть приложение React с хостингом Firebase

В этом блоге я собираюсь обсудить, как мы можем за несколько минут развернуть реагирующие приложения с помощью Firebase.

11. 5 новых языков программирования с большим будущим

Когда дело доходит до проекта и его реализации, вы должны учитывать множество аспектов. И выбор стека технологий — одна из важнейших вещей, которая может определить, насколько успешным и гладким будет ваш проект. В зависимости от идеи и требований вашего приложения, сайта или продукта, вы можете найти и выбрать подходящий язык программирования (PL).

12. 5 лучших расширений VS Code для рефакторинга, которые должен знать каждый разработчик

Если вы ищете способы очистить наш код, уменьшить сложность и улучшить функциональность, эти расширения рефакторинга помогут вам двигаться быстрее.

13. HTML-редакторы WYSIWYG: Froala Vs. CKEditor

Froala vs CKEditor: какой редактор WYSIWYG лучше?

14. Как настроить пользовательские показатели для автоматического масштабирования в AWS

Во многих случаях настраиваемые метрики могут быть полезны для создания более специализированной конфигурации автоматического масштабирования в AWS. Например, пользовательская метрика может позволить группе автоматического масштабирования быстрее реагировать на пики или учитывать состояние работоспособности хостов для метрик на основе параллелизма. Давайте посмотрим, как настроить пользовательскую метрику и политику автомасштабирования для группы автомасштабирования с балансировщиком нагрузки приложений и целевой группой с помощью AWS Console.

15. Создайте React Modal с помощью reactjs-popup

В настоящее время модальные окна являются одним из наиболее часто используемых компонентов в приложении React. Простой способ создания модальных окон поможет вам быстро реализовать функции, связанные с модальными окнами, в ваших будущих приложениях React.

16. 19 малоизвестных мифов о программировании

Вы можете подумать, что профессия, основанная на логике и обучении, будет невосприимчива к фольклору, но сообщество разработчиков по-прежнему кишит мифами — мифами настолько распространенными, что они начинают проявляться в реальности.

17. Как создать приложение 2FA на Python

Иногда лучший способ научиться что-то программировать — это посмотреть на пример, поэтому мы создали образец приложения на GitHub.

18. Рекомендации по архитектуре управляемых событиями микросервисов

Если вы корпоративный архитектор, вы, вероятно, слышали об архитектуре микросервисов и работали с ней. И хотя в прошлом вы могли использовать REST в качестве уровня взаимодействия службы, все больше и больше проектов переходят на архитектуру, управляемую событиями. Давайте углубимся в плюсы и минусы этой популярной архитектуры, некоторые ключевые варианты дизайна, которые она влечет за собой, и распространенные анти-шаблоны.

19. Алгоритмы Java: объединение отсортированных списков (LeetCode)

Простой подход к решению сложной проблемы с литкодом. Слияние k отсортированных списков из того, что многие люди, использующие алгоритмы Java, должны будут изучить, чтобы быть эффективными.

20. Как вставить бинарное дерево в Rust

Давайте вместе изучим интересные концепции Rust, такие как интеллектуальные указатели и владение классической структурой данных и алгоритмом.

21. Секретный хакерский код

Четыре принципа, которые отличают обычных программистов от хакеров.

22. Не делайте этих 5 ошибок Голанга

Это ошибки, которые я допустил, когда писал Go. Хотя эти могут и не вызвать какие-либо ошибки, но они потенциально могут повлиять на программное обеспечение.

23. Как экспортировать HTML-таблицы в PDF-документы с помощью JavaScript

Веб-приложения, содержащие таблицы, диаграммы и графики, часто включают возможность экспорта данных в формате PDF. Вы когда-нибудь задумывались, как пользователь, что происходит внутри, когда вы нажимаете эту кнопку?

24. Почему вам следует избегать использования #include при написании кода

include не является стандартным заголовком C++. Использование его — плохая практика кодирования. В этой статье описаны причины, по которым этого заголовка следует избегать

25. Понимание принципов SOLID в JavaScript

Изобретение принципов SOLID началось в конце 80-х годов. Роберт С. Мартин начал развивать эти принципы, аргументируя принцип проектирования программного обеспечения в USENET (ранний вариант Facebook). После сложения и вычитания Роберт С. Мартин сформулировал принципы в начале 2000-х годов. Так было до 2004 года, когда принципы были организованы и назывались принципами SOLID. Это аббревиатура, обозначающая пять конкретных принципов дизайна.

26. Устранение ошибки ключей CROSSSLOT с включенным режимом кластера Redis

Почему в кластере Redis возникает ошибка «Ключи CROSSSLOT в запросе не помещаются в один и тот же слот» и как ее решить.

27. Как обучение программированию готовит детей к жизни, а не только к карьере

Для детей становится все более важным научиться использовать технологии и понять, как они работают — для повседневной жизни и лучшей карьеры.

28. Расширения кода VS с ярким 2022 годом

В этой статье есть список расширений VS Code, которые имеют большой потенциал и, возможно, преуспеют в следующем году. Если вы используете vs code, прочтите это.

29. Микро-интерфейсы: использование модулей окружения TypeScript

Как использовать функцию внешнего модуля TypeScript для перекрестного обмена импортом микроинтерфейса с использованием single-spa.

30. Создайте кредитный калькулятор на JavaScript с помощью HTML & CSS

31. Функциональное программирование — это ложь

Или небольшое разглагольствование против Эликсира.

32. Разница между JDBC, JPA, Hibernate и Spring Data JPA

Подключение базы данных к Java-приложению — непростая задача. Вам необходимо учитывать пул соединений, уровень доступа к данным и т. д.

33. 20 основных проблем кодирования связанных списков из собеседований по программированию

Изображение предоставлено — Grokking the Coding Interview: Patterns for Coding QuestionsПривет всем, я делюсь множеством вопросов для интервью по программированию для программистов, которые активно ищут работу, особенно для начинающих и компьютерных инженеров, которые только что закончили учебу и не имеют реального опыта работы.

34. 12 крутых вещей, которые вы можете сделать с GitHub

Я не могу придумать интро, так что…

35. Руководство по размещению собственного Git-сервера с помощью Raspberry Pi

Размещение собственного git-сервера может быть увлекательным занятием, позволяющим понять все тонкости работы с кодовой базой.

36. Три моих лучших инструмента для регулярных выражений

Регулярное выражение — короткое регулярное выражение — представляет собой последовательность символов, определяющую шаблон поиска.

37. Контрольный список комплексной проверки кода

Проверка кода — это полезный инструмент для команд, помогающий улучшить качество кода. Тем не менее, рецензирование кода дает множество других преимуществ.

38. Представляем цветовой круг InfoSec , объединяющий разработчиков с красными и синими командами безопасности.

Как разработчик, ставший специалистом по безопасности, я на собственном опыте убедился, насколько важна совместная работа всех команд, а не только DevSecOps.

39. Руководство по масштабированию моделей машинного обучения в производственной среде

Рабочий процесс построения моделей машинного обучения часто заканчивается на этапе оценки: вы добились приемлемой точности, и «та-да! Миссия выполнена».

40. Как аутентифицировать пользователя с помощью распознавания лиц в вашем веб-приложении

Аутентификация на основе распознавания лиц для проверки пользователя в веб-приложении обсуждается в удобной для начинающих манере с использованием API-интерфейсов FaceIO.

41. Практика функционального программирования на Go

Взгляните на парадигму функционального программирования в Go

42 . Как найти произведение всех элементов массива, кроме Self-Blind 75 LeetCode

Как найти произведение всех элементов массива, кроме самого себя? Вы должны написать алгоритм, который выполняется за время O(n) и не использует операцию деления.

43. 4 наиболее часто задаваемых алгоритма на собеседованиях по программированию

Если вы предпочитаете следить за моим видео на YouTube, вы можете посмотреть его здесь!

44. Как использовать Redis Pub/Sub в мессенджерах

Как использовать Redis PubSub в приложениях для обмена сообщениями

45. Реализация стека в Python с использованием связанного списка

Стек — это структура данных, в которой элементы добавляются и удаляются из одной и той же точки. Это своего рода односторонняя система хранения. Также известна как структура данных LIFO.

46. 5 вещей, которые я хотел бы знать, когда учусь программировать

От ухода из колледжа в возрасте 20 лет до соучредительства стартапа в сфере высоких технологий — последние 5 лет прошли запутанный и поучительный путь. Все это время программирование было постоянным позитивом в моей жизни.

47. Как защитить ваше приложение Laravel

В настоящее время инструменты, которые мы используем для работы в Интернете, требуют от нас соблюдения стандартов безопасности. В противном случае они склонны помечать наши веб-приложения/сайты как небезопасные.

48. API Gateway и Backend for Frontend (BFF): примеры использования, сходства и различия

В этой статье мы рассмотрим, что такое шлюз API, BFF и как они используются для связи клиент-сервер в архитектуре микросервисов.

49. StyleCop для .NET делает код лучше

Как установить и настроить StyleCop как средство соглашения о написании кода для .NET

50. Настройте приложение Flutter и внедрите вход через Google с помощью Firebase

Как настроить приложение Flutter и реализовать вход в Google с помощью Firebase.

51. Как работает TypeScript Pick Type

Утилита Pick Type позволяет нам брать типы на основе существующих, выбирая из них определенные элементы. Давайте посмотрим, как это работает и когда его использовать.

52. Как использовать хук в компоненте класса

Знаете ли вы, что вы можете использовать хуки в компонентах класса?

Хорошо, я вру. Вы не можете использовать хук непосредственно в компоненте класса, но вы можете использовать хук в

53. 6 лучших книг по программированию на Go по отзывам

Learning Go и Black Hat Go — одни из лучших книг по программированию на Go, судя по их оценкам в отзывах.

54. Написание Slack-бота, реагирующего на команды действий

Недавно я написал слабый бот, который реагирует на команды действия (например, /ech yolo ), но столкнулся с некоторыми трудностями в поиске, как именно это сделать, поэтому я документирую его здесь, чтобы другие люди могли его найти. Точная ошибка, которую я обнаружил, была /echo failed с ошибкой «dispatch_failed».

55. 3 вещи, которые нужно знать, прежде чем начать кодирование HTML с нуля

Кодирование HTML требует от разработчиков определенного набора навыков для надежной разработки веб-сайтов. В зависимости от ваших требований и деталей проекта вы можете использовать любую из систем управления контентом, чтобы начать работу. Однако, «если вы планируете начать кодирование своего веб-сайта с нуля в HTML», вам необходимо удостовериться в нескольких вещах, прежде чем приступать к кодированию.

56. Практические задачи по программированию на JavaScript для начинающих

Привет, новичок в коде JavaScript! В этой статье я предлагаю вам ряд задач по программированию, которые помогут вам попрактиковаться в основных языковых конструкциях и алгоритмах.

57. Подключение RabbitMQ к Node JS

RabbitMQ — это брокер сообщений: он принимает и пересылает сообщения. Вы можете думать об этом как о почтовом отделении: когда вы кладете почту, которую хотите отправить, в почтовый ящик, вы можете быть уверены, что г-н или г-жа Почтальон в конечном итоге доставит почту вашему получателю. В этой аналогии RabbitMQ — это почтовый ящик, почтовое отделение и почтальон.

58. React Hook для измерения размера элемента и обработки адаптивных компонентов

react-cool-dimensions — это хук React, который измеряет размер элемента и обрабатывает отзывчивые компоненты высокопроизводительным способом, используя ResizeObserver. Попробуйте и вы ❤️ это!

59. Алгоритмы Java: копирование списка со случайным указателем (LeetCode)

Задан связанный список длины n таким образом, что каждый узел содержит дополнительный случайный указатель, который может указывать на любой узел в списке или нуль.

60. Код других людей — отстой

Смотреть, как пишут другие люди, — это самое худшее, самое запутанное и самое поучительное, что вы можете сделать.

61. Какую строчку кода вы когда-либо писали лучше всего?

Я помню, как шел на собеседование из четырех раундов, и меня спросили: «Какая лучшая строка кода, которую вы когда-либо писали?».

62. Почему язык Swift набирает популярность? Это специализированный Swift?

Swift сочетает в себе многолетний опыт создания платформ Apple с последними исследованиями в области языков программирования.

63. Краткое руководство по дискриминаторам машинописи

Очень часто у нас бывают варианты использования, когда мы хотели бы использовать единый тип Union Type, но при этом быть уверенными в свойствах внутри них.

64. Программное создание PDF-файла на C#

IronPDF — это библиотека .NET для программного создания PDF-файлов. Это быстро, просто и легко в использовании.

65. Использование Next.js + Playwright + GitHub Actions для создания приложения To-Do

Комплексное приложение Todo с API и тестами E2E с включенными действиями GitHub.

66. Может ли ваш ребенок программировать?

В течение следующих пятидесяти лет ваш ребенок будет слышать один и тот же вопрос на протяжении всей своей трудовой жизни: «Умеете ли вы программировать?»

67. Тестирование API без Postman?

Если вы тестируете серверную часть, вам нужны некоторые инструменты, потому что вы не видите, что вы тестируете. Hoppscotch — это легкий веб-пакет для разработки API.

68. 3 простых шага, чтобы изменить основную ветку Git на Heroku

Я только что увидел, что Heroku создал возможность git push heroku из основного, а не из мастера. Поскольку я все равно хотел изменить свои репозитории Git с master, я подумал, что проверю это сам. К счастью, это было очень просто.

69. Зачем вам нужно изучать несколько языков программирования

Почему учебные программы по информатике требуют изучения более одного языка программирования? Вот ответ.

70. Командная строка Ruby On Rails: Учебное пособие по созданию шаблонов Rails

Скаффолдинг в Ruby on Rails означает автоматическое создание набора моделей, представлений и контроллера, обычно используемых для одной таблицы базы данных.

71. Как настроить локальные проекты для работы с Laravel (или любой библиотекой PHP): практическое руководство

Давайте представим такой сценарий: вы работаете над приложением Laravel и обнаружили ошибку либо в самом фреймворке, либо в одной из сторонних библиотек, которые вы используете. Вы редактируете код внутри своего проекта, или, может быть, вы установили свежую копию Laravel и библиотеки, в которой есть проблема, и редактировали там код. Вы сохранили изменения, но когда вы подошли к своему терминалу, чтобы зафиксировать изменения, GIT просто проигнорировал то, что вы сделали. Вы начинаете задаваться вопросом: «Что здесь происходит?».

72. Как настроить тесты Rails с помощью RSpec, FactoryBot и Capybara

Итак, вас попросили протестировать ваше приложение, но вы не знаете, с чего начать. Или вы читали про TDD, RSpec, FactoryBot, Capybara и, может быть, не понимали, для чего они предназначены, а может, когда вы пытались запустить их в свой проект, ничего не получилось.

73. Лучшие шаблоны LeetCode для использования на собеседованиях по кодированию FAANG

Такие шаблоны кодирования, как «Скользящее окно» или «Две кучи», улучшают нашу «способность сопоставлять новую проблему с уже известной проблемой».

74. 5 бесплатных библиотек электронных таблиц JavaScript в 2021 году

Библиотеки электронных таблиц сегодня пользуются большим спросом. Такие решения удобны тем, что предлагают готовые приложения, экономят время разработчиков и деньги владельцев. Их можно использовать в любой сфере бизнеса для работы с большими объемами данных.

75. Призыв к действию на чистом HTML и CSS

Используйте этот стандартный шаблон для создания призыва к действию на любом веб-сайте с помощью HTML и небольшого количества CSS

76. Как научиться быстро и не сойти с ума

Как людям, работающим в технологической отрасли, нам часто приходится изучать новые технологии для нашей работы. Но как на самом деле научиться чему-то быстро?

77. Краткие советы программистам по улучшению осанки

Как программисты, мы проводим много времени, сидя в кресле перед столом, и в большинстве случаев вы не можете выбрать, какой стул вам нужен или какой высоты вам нужен стол. Все это в большинстве случаев приводит к плохой осанке, а это серьезная проблема, даже более серьезная, чем думает большинство людей. Итак, в этой статье я собираюсь помочь вам исправить и сохранить хорошую осанку, будучи программистом.

78. Варианты использования веб-скрейпинга для технических маркетологов

С точки зрения технического маркетолога, изучение библиотек парсинга и автоматизации чрезвычайно важно. Вот введение в две из наиболее широко используемых библиотек веб-скрейпинга в Node JS.

79. Плюсы и минусы учебных курсов по программированию

Теперь все, что касается программирования, доступно для изучения дома, но многие люди по-прежнему отправляются в школу, чтобы изучить его. Разработка программного обеспечения — это колоссальная, сложная тема, имеющая множество сложностей и нюансов, которые обычный человек не в состоянии понять без посторонней помощи. В любом случае, с помощью педагогов мирового класса и выпускников ТА, которые имеют приятную основу, они значительно упрощают процедуру обучения.

80. Кукольный HTML — искусство создания оптимизированных веб-страниц

Наконец-то настал день. распространить информацию о концепции под названием «Наблюдатель за мутациями». Да, вы должны знать об этом. Простой, но все же способный изменить правила игры, когда речь идет об управлении тем, как ваша веб-страница взаимодействует с пользователем.

81. Я создал Postwoman �� — онлайн-конструктор запросов API с открытым исходным кодом

Почтальон �� — конструктор запросов к API

82. Стоит ли изучать C в 2020/2021 году?

При работе со встроенными системами, которые зависят от скорости или имеют минимальный объем памяти, C является идеальным языком выбора. Это краткая статья о том, почему вы должны изучать C и о преимуществах этого.

83. Сделайте ваш код красивым

Когда вы новичок в программировании, вы сосредоточены на том, чтобы ваш код работал, а не на том, чтобы он выглядел красиво.

84. Установите репозитории Deb-Multimedia в Debian и Kali Linux

Установите репозитории Deb-Multimedia в Debian и Kali Linux. В этом руководстве я немного расскажу о том, как установить и использовать репозитории Deb-Multimedia в дистрибутивах Debian и их производных.

85. 10 лучших идей UI/UX-проектов для улучшения навыков работы с интерфейсом ����‍♂️

Я отобрал несколько замечательных UI и UX проектов, которые могут вдохновить вас на создание собственных проектов

86. 4 лучших API фондового рынка 2021 года

Выбор лучшего API фондового рынка может быть сложным, здесь мы разбираем 4 лучших варианта в 2021 году

87. Вам не нужен дорогой ноутбук для программирования

Вам не нужен дорогой ноутбук, чтобы начать учиться программировать. Вот сколько денег вам нужно потратить на компьютер, чтобы он работал правильно.

88. Я перешел от отсутствия опыта программирования к созданию приложения Ethereum за один год

В этой статье я объясню, как я перешел от отсутствия опыта программирования к созданию своего первого децентрализованного приложения на Ethereum.

89. Использование оператора Switch в Python

Да, вы правильно прочитали. Если вы какое-то время занимаетесь кодированием и если Python — не первый язык программирования, с которого вы начали, то вы определенно знаете, что такое оператор Switch, и цените его безупречность, когда вам нужно учитывать несколько условий/случаев для поток управления.

90. 7 проверенных способов оценить навыки программирования при приеме на работу

Основная проблема, с которой сталкивается рекрутер при найме разработчиков, — найти квалифицированных кандидатов. Согласно исследованию, было подсчитано, что 75% всех решений, связанных с наймом, приводят к неправильному найму. Таким образом, оценка навыков кодирования кандидата является важным шагом в процессе технического найма.

Что ж, первое, что приходит вам на ум, когда вы думаете о найме, это «РЕЗЮМЕ». Можем ли мы просто положиться на них? Ответ на этот вопрос категорически НЕТ.

91. Объясните сложные концепции с помощью минималистичных рисунков с Okso.app

Минималистичные наброски структуры данных

92. 5 причин, по которым дети должны начать программировать раньше

Обучение нашей молодежи кодированию означает расширение возможностей будущих лидеров и творцов для понимания и реагирования на требования сегодняшнего и завтрашнего дня.

93. Как отлаживать веб-токены JSON (JWT)

Многие современные веб-приложения, как на стороне клиента, так и на стороне сервера, используют веб-токены JSON (JWT) для аутентификации, и это отличный подход. Однако, когда что-то не работает, может быть сложно понять, почему. Этот пост призван дать вам некоторые тактики для понимания и исправления проблем с JWT. Если вы только начинаете, сначала ознакомьтесь с документацией по работе с JWT и нашими API.

94. 7 качественных показателей для измерения качества кода, которые должен знать каждый инженер

Высококачественный код имеет решающее значение для создания программного обеспечения без ошибок и ошибок, которое легко редактировать и понимать. Давайте посмотрим, как измерить качество кода.

95. 10 советов по программированию, которые стоит запомнить в 2023 году

Давайте взглянем на некоторые из лучших лайфхаков, которые стоит запомнить в новом году.

96. Как я решаю проблемы как разработчик

В мире нет программиста, который знает, как решить любую проблему кодирования. Такого человека просто не существует, потому что область программирования настолько велика, что нормальному человеку потребовалось бы две жизни, чтобы изучить все это, но у нас есть только одна жизнь.

97. Как создать бота для Twitter с помощью NodeJs

Создание бота Twitter с использованием их API — одно из основных приложений Twitter API. Чтобы создать бота Twitter с помощью Nodejs, вам необходимо выполнить следующие действия, прежде чем продолжить:

98. 7 способов поддерживать и писать лучший код

Написание и поддержка кода необходимы, потому что вы хотите сделать его понятным для людей. Итак, вот несколько моих советов о том, как писать лучший код и поддерживать его.

99. Текстовый редактор или IDE: что лучше для начинающих программистов?

Для начинающего программиста использование текстового редактора предпочтительнее, потому что, когда мы используем текстовый редактор, мы многому учимся. С другой стороны, IDE упрощает программирование.

100. Как создать свой собственный темный веб-сайт (.onion) в Linux

Как мы знаем, темные веб-сайты используют .onion для расширения своего домена.

101. Способы заработка в качестве разработчика

Есть два типа людей. Одни уже работают программистами, а другие просто пишут код в свободное время. Неважно, к какой группе вы относитесь, но большинство людей хотят зарабатывать дополнительные деньги в качестве программистов. Итак, в этой статье я покажу вам несколько способов заработать деньги в качестве разработчика.

102. Как развернуть компоненты Vlocity с помощью инструмента сборки Vlocity

Руководство по развертыванию компонентов Salesforce Vlocity с помощью инструмента Vlocity Build и его интеграции с конвейером CI/CD.

103. 9 шаблонов дизайна JavaScript, которые вам понравятся

Шаблоны проектирования — это многократно используемые решения общих проблем, возникающих при разработке программного обеспечения. Вот мои 9 любимых шаблонов проектирования для JavaScript

104. 10 проектов Python с 10 строками кода

Я столкнулся с проблемой, когда начал изучать программирование. Эта проблема заключалась в следующем: я думал, что нужно иметь глубокое понимание во всех областях, чтобы делать проекты и делать классные вещи. Так что я начал серьезно изучать программирование, но через несколько недель потерял мотивацию, так как мне было непонятно, как программирование поможет мне сделать то, что мне нравится.

105. Параллельные запросы в Swift с использованием DispatchGroup, RxSwift и Combine

Иногда нам нужно сделать несколько асинхронных запросов и получить результат, когда все запросы будут выполнены. Мы можем сделать это с помощью DispatchGroup и RxSwift.

106. Игровая среда Phaser 3: мой честный обзор

Я использую Phaser 3 уже пару месяцев, и мне это очень нравится, но иногда это заставляет меня качать головой «почему?» , только не в «плохом смысле», создание игр — это странно, js сам по себе странный, поэтому вполне логично, что Phaser, игровой движок на основе js… странный. Вот почему я выбрал следующий способ написания этого обзора: я собираюсь дать вам то, что мне понравилось, рядом с тем, почему / как это было странно, и что будет моей попыткой выглядеть беспристрастно. Но сначала.

107. Принципы программирования для начинающих

Многие из нас боролись с алгоритмами и структурами данных. Когда я начал заниматься программированием в своем университете, название предмета, который привлек мое внимание и побудил меня найти свое жизненное призвание, было «Принципы программирования». Я стал посвящать много времени тому, чтобы понять, как решать задания профессоров. Сейчас эти алгоритмы мне даются легко, а тогда их не было, и я не мог сдать экзамен, у меня был неправильный подход в обучении, их нельзя запомнить, надо практиковаться и разбираться, что нужно делать.

108. Каковы лучшие библиотеки компонентов пользовательского интерфейса для Angular в 2022 году?

Ни для кого не секрет, что Angular — один из самых популярных полнофункциональных фреймворков с доступными на сегодняшний день библиотеками компонентов.

109. 8 причин, почему Emacs — лучший текстовый редактор для программирования

Скорее всего, вы регулярно используете Блокнот, Visual Studio или Sublime для написания кода и редактирования текста. Вот почему вместо этого вам следует использовать Emacs.

110. Веб-скраппинг с помощью Python, используя всего 9 строк кода

Скрапинг — это извлечение данных с веб-сайтов. В этой статье я покажу вам, как собирать ссылки с тестового сайта электронной коммерции с помощью Python 3.

111. Обновления в реальном времени в Ruby on Rails с функцией ActionCable

Бывают случаи, когда кто-то, будучи разработчиком Ruby on Rails, хочет реализовать функцию реального времени, например, приложение для чата, и, немного покопавшись, находит функцию фреймворка под названием ActionCable, звучит ново и пугающе, верно? Не бойтесь, я постараюсь объяснить как можно проще, чтобы в конце этой статьи вы чувствовали себя комфортно в предмете.

112. Почему я люблю Java

Итак, я недавно прошел курс на Coursera под названием «Kotlin для Java-разработчиков», и поэтому я чувствую, что являюсь подходящим кандидатом для одного из самых популярных вопросов «Kotlin или Java».

113. Программирование — универсальный язык, который необходимо выучить

Программирование — это универсальный язык, навык выживания в 21 веке, который может освоить каждый. Сегодня как никогда программирование является базовым требованием для многих профессий.

114. Как понять разницу между статическим, динамическим, строго и слабо типизированным языком

Прежде всего, что означают все эти слова — Статически — Динамически — Строго — Слабо типизированные языки? Вот как вы можете классифицировать языки программирования:

115. Введение в ООП в Javascript

Всего несколько лет назад Javascript был одним из самых нелюбимых сообществом языков, его неестественное поведение было обычным источником шуток между разработчиками. Одна из основных претензий была к отсутствию простого синтаксиса для работы с классами.

116. Как привлечь внимание в мире Javascript?

Начало работы с документацией MDN

117 . 5 лучших курсов веб-разработки на Django и Python для начинающих, чтобы стать веб-разработчиком Python

Если вы ищете лучшие онлайн-курсы для изучения веб-разработки на Django, Flask и Python, то вы обратились по адресу.

118. 4 практики кодирования, которые я перенял, работая в стартапе

Практика написания кода, которой стоит научиться, когда вы начинаете работать инженером-программистом в стартапе

119. Выбор первого языка программирования: руководство для начинающих

Выбор лучшего языка программирования для изучения в первую очередь может быть ошеломляющим. Мы просматриваем популярные языки и предоставляем ресурсы для их БЕСПЛАТНОГО изучения.

120. Создание чата на основе командной строки с использованием Python

Простой чат с использованием Python

121. Необходимая литература для разработчиков Hacker Noon [список]

Какие книги сформировали нас как программистов?

122. Золотая жила разработчика: 8 каналов Youtube, на которые стоит подписаться прямо сейчас

В этом блоге представлены 8 лучших каналов YouTube для разработчиков с учебными пособиями, обсуждениями и т. д. советы опытных специалистов.

123. 7 инструментов искусственного интеллекта, которые изменят правила игры в 2023 году

Откройте для себя 7 инструментов искусственного интеллекта, которые сэкономят вам много часов.

124. Модульное тестирование AWS Lambda в Go

Когда я начал работать в Go и AWS Lambda, одной из трудностей, с которыми я столкнулся, было модульное тестирование. У меня было неплохое представление о том, что такое модульное тестирование, и я знал, как это сделать в Ruby, но в Go я понятия не имел, потому что был новичком.

125. Как настроить чат-бот OpenAI с помощью встраивания

Узнайте, как использовать встраивания, чтобы чат-бот OpenAI, созданный с помощью React и Node.js, правильно реагировал на определенные контекстные запросы.

126. Как использовать Common EditorConfig в качестве пакета NuGet

История о том, как создать пакет NuGet с .editorconfig и импортировать его во все проекты.

127. Плюсы и минусы разработки с малым кодом

Low Code может улучшить весь рабочий процесс и повысить производительность ваших ИТ-команд, снабдив их мощными инструментами для быстрого и удобного создания приложений.

128. Пройдите собеседование по программированию на этих бесплатных курсах из Стэнфорда

Технические интервью раньше были для меня вызовом. У меня есть степень бакалавра в области электроники и электроники. Телекоммуникации и степень магистра компьютерных наук.

129. 10 основных преимуществ Flutter для разработки приложений

Что такое флаттер?

130. Преимущества использования RXJava по сравнению с Java 8 Stream

Поток Java 8 упростил мою жизнь программиста. Однако есть гораздо больше вещей, которые можно улучшить, включив библиотеку RXJava. RXJava содержит множество функций для обработки потоков или наблюдаемых данных.

131. Быстрый совет: тестирование социальной аутентификации Python

Python Social Auth — отличная библиотека для интеграции сторонних логинов в ваше веб-приложение. Он поддерживает несколько фреймворков и несколько сторонних логинов. Это также здорово, потому что, если сторонняя программа не поддерживается, довольно легко добавить новую.

132. Можно ли восстановить удаленный коммит в Git?

Git уже стал стандартом в разработке программного обеспечения. О важности системы контроля версий в наше время говорить не приходится. Более того, без него сложно представить какой-либо проект. Этого требуют постоянные изменения кода и непрерывные циклы выпуска.

133. Visual Studio Code против Sublime Text: какой редактор выбрать?

В этой статье мы рассказали о преимуществах Visual Studio Code и Sublime Text. Сравните оба редактора кода по некоторым параметрам и выберите лучший вариант.

134. Понимание основных концепций программирования: объекты & Процессы

Во время учебы я много знакомился с программированием. Это полезно для решения технических проблем, но мне также нравится думать, как эти концепции можно применить к различным областям и повседневной жизни.

135. 3 вещи, которым я научился за год работы с функциональным программированием

Как и подавляющее большинство курсов, связанных с программированием, я познакомился с программированием с помощью объектно-ориентированной парадигмы (ООП). Несмотря на то, что многие языки, такие как Python, C++, JavaScript и Ruby, являются мультипарадигмальными, мы по-прежнему придерживаемся ООП как нормы.

136. Как создавать многоразовые сценарии Bash

Bash — это язык, весьма полезный для автоматизации, независимо от того, на каком языке вы пишете. Bash может выполнять множество мощных задач системного уровня. Даже если вы используете Windows в наши дни, вы, вероятно, столкнетесь с bash внутри облачной виртуальной машины, непрерывной интеграции или даже внутри докера.

137. Дорожная карта для того, чтобы стать специалистом по данным

Итак, вы хотите стать специалистом по данным? Вы так много слышали о науке о данных и хотите знать, о чем идет речь? Что ж, вы пришли в идеальное место. Область науки о данных значительно изменилась за последнее десятилетие. Сегодня есть несколько способов начать работать в этой сфере и стать специалистом по данным. Не всем из них нужно, чтобы у вас была причудливая степень. Итак, приступим!

138. Как настроить CSS-фреймворк Tailwind с помощью React

Tailwindcss предлагает современный взгляд на написание CSS. И в отличие от бутстрапа, он позволяет нам писать css без предопределенных классов, т. е. мы можем создавать свои собственные стили без внешнего мнения о том, как все должно выглядеть.

139. 7 основных советов по соревновательному программированию и DSA

Мне пришлось бросить DSA и CP в течение месяца из-за чрезмерного истощения. В этом блоге обсуждаются ошибки, которые я допустил при изучении DSA и CP.

140. Как уменьшить сжатие изображения с помощью CSS

Все изображения имеют разный размер. Но чаще всего мы хотим разместить изображение и определить размеры самостоятельно. По умолчанию все изображение сжимается в соответствии с заданными шириной и высотой. Например, если вы хотите разместить изображение шириной 400 пикселей и высотой 500 пикселей, оно будет выглядеть так:

141. Почему Low-Code никогда не заменит разработчиков

Проще говоря, психология определяет наши решения (профессиональные, личные) как основанные на страхе или любви. Мы либо выбираем что-то из удовольствия, за то, что мы чувствуем себя хорошо, за вознаграждение (все под эгидой любви), либо из-за неуверенности, FOMO и т. д. (на основе страха).

142. Как добавить контактную форму на статичный сайт

Этот пост изначально был опубликован на Codementor.

143. Путь разработчика-самоучки

Приобретение нового навыка — это хорошо, но лучше заранее точно знать, какой путь выбрать. При каждом решении узнать что-то новое всегда возникает вопрос «где» или «что». С чего мне начать, что мне делать, где я возьму материал, что бы ни случилось, всегда есть вопрос «где» или «что». Точно знать, какой путь выбрать новичку в технологиях, почти невозможно, если вы не следуете строгому руководству от наставника или любого другого источника. Эта статья больше похожа на руководство по пути веб-разработчика-самоучки.

144. Как исправить уязвимости безопасности в зависимостях NPM за 3 минуты

Привет народ. ��

145. Как начать карьеру в ИТ с нуля

Эта история для людей, у которых нет опыта работы в ИТ-индустрии, независимо от того, являетесь ли вы новичком на рынке труда или имеете некоторый опыт в других областях, но хотите начать новую карьеру.

146. Мой чертовски хороший совет младшим разработчикам

Недавно клиент написал мне по электронной почте и спросил, какой совет я бы дал тем, кто только начинает свою карьеру.

147. Почему и где вы все еще должны использовать языки C/C++?

От сложных баз данных до беспилотных автомобилей область использования языков C и C++ удивительно широка. Даже сегодня, с множеством новых & надежные инструменты программирования, два языка кодирования 70-х годов невозможно заменить. Итак, каковы общие приложения C & C++ сегодня и почему мы до сих пор их используем? Давайте узнаем в этой статье.

148. Знаете ли вы, что каждое приложение Expo включает в себя SDK Facebook?

Как Expo всех обманывает

149. Что действительно делает Node.js замечательным

Ммм… Короче говоря, я хотел узнать, как работает этот чертов узел. Прочитал множество документов, в которых говорится, что он асинхронный, однопоточный, все основано на цикле обработки событий и так далее. По сути, слова были страшными, я имею в виду, что каждый парень говорит что-то важное, используя первоклассную лексику, и это просто напугало меня до чертиков, и мой мозг был похож на

150. Остановите бесконечную прокрутку на своем сайте — прямо сейчас!

Нравится ли людям бесконечная прокрутка на веб-сайтах, которые они посещают, или они не против нажать «Читать дальше» или «Посмотреть больше»? Бесконечная прокрутка устраняет необходимость в нумерации страниц, которая представляет собой процесс разделения цифрового контента на разные страницы. Вот мой взгляд на бесконечную прокрутку и почему это прямой путь к катастрофе.

151. Зачем вам нужен токен отмены в C# для задач?

Алгоритм, как и когда вы должны использовать токены отмены для задач в C#, чтобы использовать совместную отмену при работе над проектами параллельных вычислений.

152. Шаблон архитектуры Model-View-Controller: использование, преимущества, примеры

Как построена архитектура MVC, как структурирован код и что может принести пользу вашей работе.

153. Насколько похожи языки программирования?

Все говорят, что языки программирования похожи, но насколько похожи? Означает ли это, что если вы знаете один язык программирования, вы знаете и все остальные?

154. Автоматизация Instagram API с помощью Python: получите активных подписчиков

Привет, разработчики!

155. Модификаторы доступа Python: общие, частные и защищенные переменные

Использование модификаторов доступа является частью повседневной работы любого ООП-разработчика, но в Python все немного сложнее, а может быть, и немного проще.

156. Стоит ли становиться программистом??

Многие люди думают стать программистами. Некоторым, потому что им просто нравятся компьютеры в целом, и они думают, что программирование должно быть для них забавным испытанием, другие, возможно, потому, что они слышали, что у программистов очень высокооплачиваемая работа. В любом случае, большинство людей не знают, чем они будут заниматься на работе программистом. Некоторые думают, что это будет как в кино.

157. Руководство по JavaScript на 2020 год: часть 1 [обзор]

Добро пожаловать в удивительный мир JavaScript, где мы научимся создавать потрясающие приложения и попутно создавать потрясающие вещи.

158. Настройка бэкенда для приложения React за 15 минут

Недавно я представил Directual на Hackernoon (см. Low-code для хакеров). Теперь я хотел бы продолжить абсолютно практический пост. Сначала я покажу общую схему совмещения Directual и React, а затем вас ждет live-демонстрация сборки приложения с нуля в готовый к эксплуатации Docker-контейнер.

159. Краткое руководство по принципам бережливой разработки ПО

Я помню, как узнал о бережливом производстве в Toyota в бизнес-классе средней школы и был бесконечно очарован идеей минимизации отходов и максимизации производительности за счет преднамеренного проектирования. Со временем методология бережливого производства была принята в нескольких отраслях, помимо производства, включая разработку программного обеспечения.

160. Как генерировать определения типов TypeScript и код из GraphQL

Использование GraphQL вместе с TypeScript может иметь огромные преимущества, поскольку вы можете использовать схему GraphQL для создания определений типов TypeScript на лету!

161. 6 месяцев использования GraphQL

Поработав над проектом в течение 6 месяцев с использованием GraphQL на бэкэнде, я оцениваю соответствие технологии рабочему процессу разработки

162. Решение из 9 шагов, чтобы навсегда сбежать из ада туториала

Учебный ад реален, и разработчики-новички очень часто в него попадают. Ознакомьтесь с этими 9 шагами, чтобы навсегда выбраться из ада обучающих программ.

163. React-Hooks: в чем разница между useCallback и useMemo?

В этом мы делимся полным руководством по React Hooks. Здесь вы читаете о useCallback и useMemo с их синтаксисом. Если вы изучаете React, то это для вас

164. Выпуск Python Django 3.0: поможет разработчикам улучшить приложения в 2020 году

Язык программирования Python известен по многим причинам. Его любят предприятия, разработчики, исследователи во всем мире. Будь то корпоративная разработка, машинное обучение или что-то еще, у Python есть множество приложений в современном мире. Он не только смог впечатлить пользователей своей гибкостью, простотой понимания, несложной реализацией и обилием библиотек, но и своими фреймворками, в которые разработчики влюбляются мгновенно.

165. Вот почему мы перешли с Google Places на Mapbox для нашего API автозаполнения

Мой день прошел отлично, я был в хорошем настроении после проверки нашего недавно обновленного MRR на Stripe. Затем я заметил электронное письмо от Google, и мой день изменился.

166. 5 повторяющихся шагов, которым я следую, чтобы решить практически любую проблему кодирования

Каждая проблема программирования включает в себя какой-то алгоритм. Алгоритм в этом смысле представляет собой процесс или набор шагов для выполнения определенных задач; или просто пошаговый способ решения проблемы. Существует около 700 языков программирования. (Серьезно: вот список.) Итак, что учить и зачем это учить — это то, на чем застревает большинство людей. С моей точки зрения, вы можете (и должны) выбрать любой язык. Изучение основ одного языка программирования по запросу не принесет вам вреда. Но: вы должны выбрать ОДИН язык, который станет вашим магическим заклинанием, и вы всегда должны быть готовы создать что-то из него. Изучение разных языков и неспособность делать что-либо действительно хорошо похоже на проклятие.

167. Как элегантно писать модульные тесты

«Если вам не нравится модульное тестирование вашего продукта, скорее всего, ваши клиенты тоже не захотят его тестировать». — Аноним

168. Топ 5 языков программирования машинного обучения в 2021 году

Python, R, Lisp, Prolog и Java — лучшие языки программирования машинного обучения для изучения в 2021 году.

169. Как быстро перезапустить приложение TypeScript NodeJS

Я работаю над различными приложениями Node JS последние 4 года. Для каждого проекта я пытался улучшить производительность и качество кода. Из этого я нашел очень интересный способ перезапустить приложение машинописного текста так быстро.

170. Образы Docker: имя против. Тег против. Дайджест

Краткое руководство по использованию имени, тега и докера для извлечения образа докера.

171. Узнайте, как учиться, прежде чем научиться программировать

Хотя этот анекдот основан на моем собственном опыте, я твердо верю, что большинство из нас были в такой ситуации раньше. Однажды вы решаете узнать что-то новое. Возможно, вы хотите научиться программировать, поэтому выбираете самый популярный язык на данный момент. Это язык, за который «платят больше всего», он работает как по волшебству, и все ищут людей, которые его знают.

172. Полная шпаргалка по командам для начинающих по Rails

Когда я был новичком в Rails, первые пару недель я выживал, читая все статьи и понимая только около 30% того, что я делал. Информации было много, и больше всего меня раздражало то, что когда после долгих усилий я, наконец, понял, что мне нужно делать, я должен просмотреть все показания и найти правильную команду, которая Мне нужно писать на своем терминале (спустя столько времени, теперь я могу печатать их почти с закрытыми глазами, но поначалу это было невероятно сложно).

173. Определение типов: использование allOf в Swagger JSON

Изображение пользователя Devanath с сайта Pixabay

174. Как стать разработчиком Web3

В этой статье рассказывается, как сразу приступить к разработке Web3, не теряясь в изобилии информации.

175. Когда все поправили самую умную женщину в мире

Я считаю задачу Монти Холла одной из самых увлекательных головоломок, потому что она кажется обманчиво простой. Когда Мэрилин фон Савант, женщина с самым высоким IQ, правильно ответила на эту головоломку в 1991 году, она получила более 10 000 писем от ученых и докторов наук, критикующих ее «ошибку», только для того, чтобы позже доказать, что она была права.

176. Топ-7 лучших фреймворков для разработки интерфейса и когда их использовать

В течение последних нескольких лет разработчики Frontend проявляли пристрастие к React, а Vue.js и Angular тесно отставали. Сравнительный интерес к Vue немного поутих из-за долгожданного и несколько отложенного релиза Vue 3.0. Точно так же интерес к Angular снизился из-за длительной задержки поставки Ivy (его интерфейсного рендерера).

177. Кодирование и скриптинг: в чем разница?

Вы, наверное, где-то видели, как кто-то говорит, что кодирование против скриптинга. Когда я впервые увидел это, я подумал, что это одно и то же, но чем больше я узнавал, тем больше я обнаруживал, что между ними есть некоторые основные различия. Итак, в чем же эти различия?

178. Интеграция ведения журнала с помощью NLog в веб-приложение ASP.NET Core 3.0

NLog: это платформа ведения журнала с открытым исходным кодом, которая обеспечивает большую гибкость и настраиваемые параметры для регистрации информации о вашем приложении. Это позволяет одновременно выбирать несколько целей, таких как база данных, облачные сервисы, файлы, консоль и т. д., чтобы пользователю не приходилось поддерживать разные конфигурации в коде. Это наиболее широко используемая платформа ведения журналов.

179. Язык программирования Crystal прост, как Ruby, и быстр, как C [обзор]

В моем бесконечном стремлении найти гармонию между скоростью выполнения задач (скоростью разработки) и скоростью работы (производительностью) я наткнулся на проект на стадии инкубации, который заставил меня подумать: «Это может быть единственный язык для меня. .”

180. Вторая версия Grandjs здесь

Это потрясающее чувство, когда видишь, как то, что ты создал год назад, набирает популярность, и каждый новый день им пользуются новые люди!

181. Моя новая серия — Новый взгляд на школу Lambda

Как я уже упоминал в предыдущем посте, скоро я снова вернусь к направлению «Разработка программного обеспечения», которое я изучал в школе Lambda в прошлом году. Это означает повторное прохождение всей учебной программы Full-Stack Web от начала до конца. Чтобы я действительно освоил то, что я буду изучать заново, я решил научить этому других людей с помощью серии видеоблогов, сообщений в блогах и эпизодов подкастов. Эта серия будет называться просто «Возвращение в школу Лямбда».

182. Стоит ли изучать ассемблер, чтобы стать лучшим программистом?

Собираетесь ли вы в ближайшее время писать код на ассемблере? Может и нет, как у него очень нишевые варианты использования. Тогда зачем вам утруждать себя его изучением? Что ж, прежде чем мы ответим на этот вопрос, давайте немного взглянем на то, что такое сборка, чтобы лучше понять, как она может вам помочь.

183. Почему каждый разработчик Javascript должен избегать использования операторов if

Прекратите использовать операторы if, если в этом нет крайней необходимости. Использование оператора if — неуклюжий способ написания кода, и его следует по возможности избегать.

184. Учебное пособие по VS Code: как настроить проект React.js с помощью Next.js

Инфраструктура Express.js предоставляет встроенные API-интерфейсы, которые очень полезны для эффективного создания быстрых и масштабируемых приложений с помощью React.js.

185. Что делает вас отличным программистом в команде?

Большинство разработчиков программного обеспечения стремятся быть не только компетентными, но и великими профессионалами.

186. 4 шага к завершению вашего побочного проекта

Мы все видели кладбище папок заброшенных проектов. Отчаянно боретесь за внимание, но терпите неудачу в свете нового приключения или приложения, которое изменит мир. Я делаю это постоянно, теперь я закончил 4 приложения и 2 других проекта за последний год, применив следующие шаги.

187. Лучшие практики в CSS: организация и соглашения об именах

Я пишу код более трех лет. Я всегда спрашивал себя о передовой практике и о том, как сделать свой код более читабельным, понятным, простым в обслуживании и чтобы другие разработчики могли с ним работать.

188. Почему важен порядок в React Hooks

React Hooks — это новая функция в React 16.8. Это мощный способ написания компонентов с отслеживанием состояния. Однако за всю эту мощь приходится платить.

189. Как настроить среду Arch Linux для кодирования

Настройка среды Arch Linux для написания кода.

190. Подсел на паттерн деструктурирования массивов React

На днях я читал замечательный, но очень не относящийся к TLDR пост легендарного бога React Дэна Амброва об useEffect.

191. Более 22 инструментов, веб-сайтов и плагинов для разработчиков, которые помогут вам стать лучшим разработчиком

В этой статье я поделюсь своими 22 самыми любимыми веб-инструментами, которые упростят вашу жизнь инженера.

192. 32 потрясающих фрагмента кода JavaScript (однострочники), которые вы должны использовать в 2023 году

Я хотел бы поделиться некоторыми полезными материалами JavaScript, которые я сохранил

193. Таблица цветовых кодов Minecraft: изменение цвета чата и MOTD

Цветовой код Minecraft представляет собой комбинацию знака раздела «§», за которым следует цифра (0–9) или алфавит (a–f). В этой статье вы найдете полную таблицу всех цветовых кодов Minecraft.

194. Различия между включениями и соединениями в Ruby on Rails

Многие из нас знают о включениях и соединениях, но иногда мы путаемся в их использовании. Когда я экспериментировал с рефакторингом кода в одном из своих проектов, я попробовал эти вещи. Поэтому я подумал, что могу поделиться этими выводами с вами, ребята.

195. Введение в программирование для детей: что должен знать каждый родитель

Правильная платформа для программирования может создать среду, в которой ваш ребенок сможет раскрыть свое любопытство и лучше понять, как технологии влияют на мир.

196. Как создать бота для набора текста со скоростью 910 слов в минуту, используя всего 12 строк Python

Предпосылки

197. Как сжать резервную копию mysqldump с помощью Gzip

Что такое mysqldump?

198. Как сделать заставку на Android

Привет, мир! Сегодня мы посмотрим, как сделать красивую заставку в приложении для Android.

199. Удаленная работа или не удаленная работа? Вот в чем вопрос ��

Время от времени люди подходят ко мне и спрашивают, что нужно, чтобы начать работать удаленно, поэтому я решил превратить свое выступление в короткий пост.

200. Понимание замыкания и области действия JavaScript

Узнайте, что такое замыкание и область действия JavaScript, как они работают, примеры из реальной жизни, показывающие варианты их использования и их недостатки.

201. Программисты-самоучки против программистов с высшим образованием: кто эффективнее?

Если вы обычный человек, мало разбирающийся в программировании, вы, вероятно, подумаете, что те программисты, которые закончили колледж, лучше, чем самоучки. Я имею в виду, что они учились в колледже, они должны знать больше, чем те, кто выучил это самостоятельно. На самом деле ответ не так прост.

202. Другой подход к обучению детей и подростков кодированию

Как вы обучаете пятиклассников концепциям разработки программного обеспечения, не слишком углубляясь в какой-либо конкретный язык? Это вопрос, который я задавал себе за несколько недель до посещения местной школьной ярмарки STEM (наука, технология, инженерия и математика).

203. 6 лучших книг по программированию SQL, оцененных по отзывам

«Практические задачи по SQL» и «SQL для чайников» — одни из лучших на рынке книг по программированию на основе SQL, судя по отзывам.

204. Как исправить Python TypeError: объект «int» не является итерируемым

Python TypeError: ‘int’object is not interable — распространенная ошибка, которая может быть вызвана использованием цикла без метода range(). Это можно легко исправить.

205. 8 бесплатных онлайн-игр, которые помогут вам научиться кодированию

Изучать кодирование — это не просто знакомиться с синтаксисом или чувствовать себя комфортно, но понимать логику и улучшать логические и аналитические навыки. Каждый язык программирования имеет свои преимущества и недостатки, но основы в определенной степени одинаковы. Все мы знаем, что лучший способ выучить язык программирования — писать на нем коды. Также известно, что ключевые разработчики не просто пишут код, а делают это с удовольствием. Если основы не отсортированы, продвинутое программирование может быть скучным.

206. Почему вы должны изучать язык программирования Leo

Новый язык для частных приложений web3

207. Статический полиморфизм с использованием любопытно повторяющегося шаблона шаблона (CRTP)

Наследование — один из наиболее часто используемых методов повторного использования кода. Объектно-ориентированные языки стремятся к наследованию, чтобы собрать общую функциональность в базовом классе.

208. Полезные советы по написанию чистого кода

В этой короткой, но тем не менее полезной статье я собрал наиболее полезные советы по написанию чистого кода. Эти правила не зависят от языка, который вы используете, и бесценны как для начинающих, так и для опытных программистов.

209. Знакомство с компонентами React Server

Компоненты React Server позволяют отображать компоненты React на сервере для повышения общей производительности приложения.

210. Получение данных из API в React.js с помощью React Hooks

Создайте веб-страницу, которая принимает название города в качестве входных данных и предоставляет данные о погоде в городе.

211. «Если только вы не занимались разработкой программного обеспечения в пещере»

В этой статье мы рассмотрим некоторые передовые методы работы с микросервисами и предложим несколько проверенных способов помочь вам с архитектурой микросервисов.

212. Чествование женщин в STEM и поощрение следующего поколения

Расширяя доступ девочек к образованию и ресурсам STEM, мы можем работать над сокращением гендерного разрыва в STEM и создавать более разнообразную и инклюзивную рабочую силу.

213. Как установить и настроить PHP для Apache и MySQL

В этой статье мы объясним, как установить PHP, Apache и MySQL, а затем узнаем, как настроить PHP.

214. Сравнение лучших настольных компьютеров и ноутбуков для программирования

Каждый программист, покупающий новый компьютер, задастся вопросом: «Должен ли я купить настольный компьютер или ноутбук для программирования?» Кроме того, какой компьютер мне следует купить, если помимо программирования я хочу заниматься и другими делами, например играть в игры?

215. 5 шагов в программировании, которые помогут вам не застрять

Застревание в проблеме программирования — очень распространенное явление.

216. Как защитить приложение Flask с помощью Ory Kratos и Ory Keto

Как защитить приложение flask с помощью Ory Kratos и Keto, чтобы легко добавить функции проверки подлинности в вашу программу без необходимости написания строк кода.

217. Как я создал простую программу табелей успеваемости на Java

Узнайте, как создать простую систему табелей успеваемости на Java, которая будет принимать 2 предмета, но позже она будет обновлена ​​до 15 предметов.

218. Введение в разработку Ethereum на Android с использованием Web3j и Infura

Недавно я решил, что хотел бы немного больше заняться разработкой Ethereum, поскольку технология блокчейна всегда интересовала меня, но я так и не удосужился создать проект с ее использованием. Поскольку Android — моя любимая среда, я решил, что это будет моя платформа. Однако при запуске я заметил, что было довольно сложно найти много информации о разработке Ethereum для мобильных устройств, что привело к созданию этой статьи, в которой я покажу вам, как создать простое приложение Ethereum с использованием web3j в тестовой сети Ethereum Rinkeby.

219. Использование приложения NestJS с DynamoDB и Serverless Framework на AWS

NestJS — это прогрессивный Node. js, который помогает создавать серверные приложения.

220. Регулярное выражение поиска и замены с кодом VS

Это функция, которую я использую довольно часто, но недостаточно часто, чтобы помнить шаблон, когда он мне нужен. Поэтому я пишу эту статью как собственную ссылку на полезный инструмент с VS Code.

221. Типы обслуживания программного обеспечения: корректирующее, адаптивное, корректирующее и профилактическое

Расширение функциональности продукта, снижение износа и удовлетворение потребностей пользователей — все это достигается за счет обслуживания программного обеспечения.

222. 8 вещей, которые не нравятся разработчикам в Low-Code и No-Code

Исследование отношения профессиональных разработчиков программного обеспечения к инструментам с низким и нулевым кодом, включая рекомендации для разработчиков инструментов с низким и нулевым кодом.

223. Переход с Heroku на Render

Переход с Heroku на Render

224. Объяснение важности качества кода

Можно было бы ожидать, что написание кода, который сможет прочитать и понять любой программист, будет неотъемлемым навыком разработчиков программного обеспечения. Дело в том, что такой способностью обладают только 20% программистов. Код, который вы пишете, должен быть понятен не только машине, но и человеку. При разработке программного обеспечения качество должно быть приоритетом для всех. На протяжении всего процесса разработки целью должно быть получение качественного и работающего кода.

225. Как использовать шаблон проектирования адаптера в Vue.js

Как повысить удобство сопровождения вашего проекта Vue.js с помощью шаблона проектирования адаптера.

226. Секреты обратного программирования: научитесь программировать быстрее

Как начать программировать? Нет, в интернете много статей на эту тему, поэтому я не буду говорить вам то же самое, потому что покажу вам секреты обратного программирования

227. Ваше руководство, как стать более быстрым программистом

228. Скрытие членов с помощью явной реализации интерфейса в C#

Явная реализация интерфейса — это сложный и редко используемый метод, который позволяет одному классу наследовать от нескольких интерфейсов, имеющих одинаковую сигнатуру метода. Явная реализация каждого интерфейса с добавлением имени интерфейса перед методом позволяет одной и той же сигнатуре метода существовать в одном и том же классе. Я не буду демонстрировать это здесь, но в Интернете есть множество примеров этого. Есть еще одно преимущество явной реализации интерфейса, а именно скрытие членов от доступа через ссылку на класс. Я создам пример этой техники, используя фабричный шаблон проектирования, класс Fruit и консольное приложение, которое вы можете пройти, нажав F11. Если вы создаете новое консольное приложение C# в Visual Studio, а затем копируете и вставляете весь приведенный ниже код, вы можете выполнить его (F11) и посмотреть, как оно работает.

229. Объектно-ориентированное и функциональное программирование: что лучше?

Давайте погрузимся, чтобы узнать об объектно-ориентированном программировании и функциональном программировании. Что такое объектно-ориентированное программирование/ООП? Что такое функциональное программирование/FP?

230. 4 расширения Google Chrome, которые улучшают мой рабочий процесс кодирования

Четыре расширения Google Chrome, на которых я основываю свой рабочий процесс кодирования, — это YouCode, Web Developer, Window Resizer for Developer, Wappalyzer — все в магазине.

231. Что такое Haskell, кто его использует и где можно научиться программировать на нем

Язык Haskell (и подход к функциональному программированию) становится все более популярным в отрасли — бизнесу нужны надежные и безопасные программные решения, а некоторые проблемы невозможно решить без передового технологического стека.

232. Как чистая кодовая база становится непригодной для сопровождения

Давайте разберемся, как стиль кодирования возрастает, а затем деградирует.

233. Полное руководство по настройке PHPStorm для Magento 2

Как разработчик Magento, вы имеете дело со сложной кодовой базой, по которой вам нужно перемещаться. Вот почему полезно иметь IDE (интегрированную среду разработки), которая помогает писать код и обеспечивать его качество.

234. Как сделать тест на кодирование без BS

В этой записи блога рассказывается о том, что делает тест по кодированию отличным для домашнего использования, и даются важные советы о том, как извлечь максимальную пользу из этого вида оценки.

235. Меньшие, более быстрые и дешевые ноутбуки для кодирования через AWS

Мой ноутбук для программирования меньше, быстрее и дешевле вашего, и он находится в центре обработки данных AWS!

236. Что дало Node.js, чего не было в Rails?

Когда в конце 2012 года я получил диплом по компьютерным наукам, Ruby on Rails был на пике популярности среди стартапов. Казалось, что каждый горячий стартап использовал его.

237. Методы массивов появятся в JavaScript в 2022 году

Javascript представляет несколько новых методов массива, которые позволяют нам одновременно копировать массив, а не изменять оригинал. Давайте посмотрим, как они работают.

238. Использование побитовых операторов для управления разрешениями в GO

Несколько дней назад я наткнулся на очень интересный подход к предоставлению разрешений (или ролей) пользователям в системе.

239 . Лямбда-функция, которая создает файлы xlsx из данных JSON для хранения на S3 с помощью NodeJS/Typescript

Как написать лямбда-функцию для преобразования данных json в файл xlsx, а затем загрузить в s3 и вернуть подписанный URL-адрес этого загруженного файла в бессерверной среде

240. Не используйте вложенные обратные вызовы, вместо этого используйте цепочку промисов

Полное руководство по тому, как сделать ваш асинхронный код JavaScript более управляемым с помощью Promise Chaining!

241. Как повысить продуктивность программирования с помощью Plop

Я не могу вспомнить, когда впервые услышал фразу «работай умнее, а не усерднее», но я всегда ищу способы повысить свою продуктивность кодирования и получить максимальную отдачу от своего времени, особенно при написании кода или управлении проектами. . Недавно я открыл для себя Plop, фреймворк микрогенератора, и теперь удивляюсь, как раньше обходился без него!

242. Рассчитайте требуемую норму прибыли с помощью трехфакторной модели Фамы-Френча

Инвесторы всегда оценивают размер риска, на который они готовы пойти ради определенного ожидаемого дохода. Интуитивно понятно, что лучшие инвестиции приносят максимальную прибыль

243. Самые распространенные ошибки кодирования (и как их избежать)

Есть много ошибок, которые может сделать начинающий программист. Сегодня вы узнаете о самых распространенных ошибках, которые допускают новички, и о том, как их избежать.

244. Как автоматически удалить просроченные документы с помощью MongoDB (индекс TTL)

Недавно мне нужно было удалить некоторые документы, которые я сохранил в MongoDB через некоторое время. Я могу привести несколько примеров того, почему нам может понадобиться удалить данные через некоторое время:

245. Функциональное программирование: эффективный подход для опытных программистов

Функциональное программирование — это способ написания кода, основанный на использовании функций для решения проблем.

246. Как заполнить вашу базу данных Rails с помощью Faker

Несколько дней назад я создал систему поддержки клиентов и начал думать о том, как заполнить мою базу данных rails случайными данными для тестирования без необходимости вводить данные вручную. Возможно, это не лучший способ сделать это, но он работает и позволяет протестировать ваше приложение.

247. Разница между CI и CD в DevOps

Жизненный цикл разработки программного обеспечения состоит из множества движущихся частей. Огромной проблемой многих крупных компаний является поддержание согласованного процесса развертывания. Написанные шаги иногда пропускаются; ручное развертывание подвержено ошибкам, а самодельные сценарии развертывания обычно понятны только тому, кто их написал. Такие компании, как Netflix, Etsy и Amazon, должны убедиться, что циклы развертывания проходят гладко, а ошибки выявляются как можно раньше.

248. Как парсить Google с помощью Python

С тех пор, как Google Web Search API устарел в 2011 году, я искал альтернативу. Мне нужен способ получить ссылки из поиска Google в мой скрипт Python. Поэтому я сделал свой собственный, и вот краткое руководство по парсингу результатов поиска Google с помощью запросов и Beautiful Soup.

249. 5 лучших расширений VS Code, которые помогут организовать ваш код в 2021 году

Используйте эти 6 расширений VS Code, которые помогут разработчикам организоваться и работать эффективно.

250. Как эмулировать CPUID в виртуальной машине KVM

Для большинства рабочих нагрузок необходимо будет определить характеристики процессора, на котором они выполняются. Большинство процессоров имеют некоторые возможности для запросов. ЦП x86 использует инструкцию CPUID.

251. Распространенные ошибки, которых следует избегать при обучении программированию

Обучение кодированию может быть сложным и полезным путешествием, но оно не лишено подводных камней. Однако при наличии некоторых знаний и планирования эти распространенные

252. Как использовать рекурсию для обхода объектов JSON и файловой системы

Я работаю в основном над программами прикладного уровня, поэтому редко использую рекурсию. Однако время от времени мне нужна функция, которую лучше всего решать рекурсивно. Важно уметь распознавать, когда проблема лучше всего решается рекурсивно, и иметь возможность записать ее, когда придет время.

253. Использование AWS Lambda для уменьшения размера приложения NodeJS

Советы о том, как уменьшить размер приложения узла, и преимущества этого.

254. Интерфейсы в Golang

Что такое интерфейсы в Golang?

255. 9 лучших онлайн-курсов по Java для изучения программирования для начинающих

В этой статье я расскажу о некоторых из лучших курсов Java, на которые новички могут подписаться для изучения Java.

256. Как вывести свой личный веб-сайт на новый уровень

Портфолио, в некотором смысле, является более длинной версией резюме. В наше время важно продемонстрировать свою работу, загрузив портфолио на веб-сайт.

257. Почему дети должны учиться программировать и с чего начать

Программирование не только позволяет детям узнавать что-то новое помимо обычной школьной программы, но и улучшает математическое и логическое мышление

258. Должны ли веб-разработчики использовать WordPress?

Если вы веб-разработчик и не уверены, следует ли вам использовать WordPress для создания веб-сайтов или вам следует кодировать их самостоятельно. Прочтите эту статью, чтобы узнать, стоит ли веб-разработчикам использовать WordPress.

259. 6 примеров неудач аутсорсинга

Аутсорсинг — это практика передачи определенного аспекта ваших бизнес-операций и/или отдельных задач компании или специалисту, который работает вне организации на независимой основе. По сути, это делегирование задачи кому-то другому по согласованной цене.

260. Изучите основы Ethereum JSON API за 5 минут

На днях я оказался в ситуации, когда мне нужно было общаться с сетью Ethereum с помощью python в среде, где заставить работать web3.py казалось почти невозможным. Поскольку мне все еще нужно было общаться с сетью, я прибегнул к использованию JSON-RPC API, предоставляемого Ethereum, на основе которого построены все библиотеки web3. Оказывается, это очень интересно! Итак, приступим!

261. Вычисление производного состояния в JavaScript с использованием селекторов

Государственное управление является сложной задачей. Мы можем упростить задачу, убедившись, что в нашем состоянии нет избыточной информации. Что я имею в виду? Допустим, в нашей программе нам нужно выяснить, будут ли пускать людей в наш бар. Мы можем определить это, изучив пару атрибутов человека: мы можем посмотреть на его или ее возраст (в бар может войти любой человек в возрасте 21 года и старше) или мы можем посмотреть, является ли он или она сотрудником бара (все сотрудникам бара вход разрешен независимо от возраста). Теперь мы можем хранить всю эту информацию в нашем объекте состояния:

262. Как стать десятикратным разработчиком: основное руководство

Полное руководство, как стать десятикратным разработчиком — или каких разработчиков я нанимаю (и продвигаю) в качестве вице-президента по разработке?

263. 4 совета и усилителя Хитрости, которые сделают ваш код ReactJS более понятным и надежным

Вот список удивительных приемов, которые вы можете использовать для быстрого улучшения вашего приложения React, не меняя слишком много процессов и не прилагая особых усилий.

264. Переместить все отрицательные элементы в конец

В этой статье мы подробно обсудим, как переместить все отрицательные элементы в конец. Мы также обсудим 2 подхода к решению приведенной ниже проблемы.

265. Безумие, которое случилось со мной в школе Лямбда

Наш студенческий путь

266. Мой опыт работы с Jetbrains Academy на данный момент [Обзор]

Обзор Jetbrains Academy — «Практическая платформа для обучения программированию», написанный студентом колледжа.

267. Понимание полей и отступов в CSS с помощью простых аналогий

Фото Inside Weather на Unsplash

268 . Как создать генератор QR-кода для Slack всего из 7 строк кода

Эй, помните QR-коды?

269. Как понять, что ваш код на самом деле отстой.

Для меня нет лучшего момента, чем начать новый проект.

270. Самый простой способ решить проблему N+1 на GraphQL

GraphQL — это круто! Но одна из самых раздражающих частей реализации сервера GraphQL — это решение проблемы N+1.

271. Интеграция ведения журнала с помощью NLog в веб-приложение ASP.NET Core 3.0

NLog: это платформа ведения журнала с открытым исходным кодом, которая обеспечивает большую гибкость и настраиваемые параметры для регистрации информации о вашем приложении. Это позволяет одновременно выбирать несколько целей, таких как база данных, облачные сервисы, файлы, консоль и т. д., чтобы пользователю не приходилось поддерживать разные конфигурации в коде. Это наиболее широко используемая платформа ведения журналов.

272. Основное руководство по устаревшему коду

В этом руководстве вы узнаете, что такое устаревший код, его характеристики, инструменты и рекомендации по эффективной работе с устаревшим кодом и техническим долгом.

273. Как настроить Ruby On Rails в Windows 10

Когда-то установка Ruby на Windows сопровождалась множеством проблем (по крайней мере, моя история поиска может подтвердить это), но все прошло долгий путь.

274. Объяснение проверки нулевого параметра C#

Очень распространена практика проверки параметров на нуль:

275. 3 привычки, которые помогут вам стать лучшим разработчиком

Кто/что, по вашему мнению, лучший друг программиста? Некоторые говорят, что кофе, другие говорят, что это сочетания клавиш, но я думаю, что это переполнение стека.

276. Как реализовать простой контейнер состояний с нуля

Давайте представим, что у нас есть компонент, простой счетчик. Счетчик имеет состояние и две кнопки для управления этим состоянием. У нас также есть функция для отображения состояния.

277. 16 приемов SQL, которые должен знать каждый новичок

В этой записи блога подробно описаны наиболее сложные методы SQL хранилища данных.

278. Создайте свой собственный текстовый редактор за 15 минут: практический курс по программированию

Дело не в том, что текстовых редакторов не хватает. Но учтите: примерно с 60 строками кода (это почти ничего) вы можете создать свой собственный безопасный и стабильный текстовый редактор. Это будет довольно просто и не будет много функций, но это будет ваша работа, даже если вы едва знаете, как программировать.

279. Защищены ли рабочие места разработчиков от следующей рецессии?

Для тех из нас, кто не погружен в листы глобальных экономических данных — то есть для большинства из нас — спекуляции СМИ о надвигающейся рецессии могут показаться расплывчатой ​​и неопределенной угрозой. Трудно разобраться в потоке быстрых новостей о финансовых прогнозах, контрольных показателях и общей тревоге. Со всей этой запутанной информацией еще труднее думать о том, что мы должны с этим делать.

280. Создание высокопроизводительных анимаций с использованием Web Animations API и хуков React

Использование API веб-анимации (также известного как WAAPI) в качестве крючка React. Давайте создавать высокопроизводительные, гибкие и управляемые веб-анимации в современном мире. Надеюсь, вы, ребята, ���� это!

281. 10 лучших платформ машинного обучения

Машинное обучение (ML) — одна из самых быстро развивающихся технологий на сегодняшний день. Разработчики машинного обучения ищут подходящую среду для своих различных проектов по разработке приложений машинного обучения. 10 лучших фреймворков машинного обучения, перечисленных здесь, отвечают современным потребностям разработчиков экономичным способом. Давайте узнаем об этом.

282. Ошибка на миллиард долларов в Go?

Следующий пример кода взят из документации стандартной библиотеки Go:

283. Как использовать шаблон публикации-подписки с JavaScript

Результат следующего пера показывает случай, когда я буду использовать шаблон публикации/подписки. Каждый раз, когда вы нажимаете кнопку «Событие», добавляется квадрат и отображается сообщение с количеством квадратов.

284. Десять самых популярных репозиториев Github

Как мы знаем, GitHub — это платформа для совместной работы разработчиков, она позволяет нам работать вместе и вносить свой вклад в сообщество. Это также позволяет нам делать репозитории

285. Почему иногда можно использовать git push -f: переписывание истории репозитория кода

Одно из первых наставлений, которое молодой падаван получает вместе с доступом к git-репозиториям, звучит так: «никогда не используйте git push -f». Поскольку это одна из сотен максим, которые необходимо усвоить начинающему инженеру-программисту, никто не тратит время на разъяснение, почему этого делать не следует. Это как с младенцами и огнем: «спички детям не игрушки», и все тут. Но мы растем и развиваемся и как люди, и как профессионалы, и однажды вопрос «собственно, зачем?» может возникнуть.

286. Как автоматизировать рабочий стол Linux

Автоматизация — отличный способ узнать что-то новое и улучшить критическое мышление. Это руководство для начинающих по автоматизации рабочих столов Linux.

287. Шаблон контекста и поставщика с использованием Vue 3 Composition API

API-интерфейс React Context предоставляет способ совместного использования свойств, которые требуются для многих компонентов (например, пользовательских настроек, темы пользовательского интерфейса), без необходимости передавать реквизит через каждый уровень дерева (т. н. сверление реквизита). Хотя Vue.js не предоставляет такую ​​же абстракцию из коробки, в этой статье мы увидим, что в Vue 3 у нас есть все инструменты, необходимые для быстрого воспроизведения той же функциональности.

288. Kotlin VS Java — разработка под Android

Когда вы думаете о разработке для Android, скорее всего, сразу приходит на ум один язык программирования — Java.

289. Сложность — враг разработки программного обеспечения

Ключ к долговечному и удобному в сопровождении программному обеспечению проще, чем вы думаете.

290. Как обнаружить и удалить эмодзи в Golang

Я столкнулся с проблемой, когда 10 миллионов сообщений с эмодзи были записаны в таблицу MySQL с кодировкой utf8.

291. Как выучить все сочетания клавиш VSCode на Mac, Linux и Windows

Испытываете ли вы страх, когда видите, как другие программисты быстро перемещаются по сотням строк кода, вносят молниеносные изменения или открывают несколько вкладок во время разработки и почти не касаются мыши или сенсорной панели?

292. Для Android и amp; iOS: 6 лучших платформ для разработки гибридных мобильных приложений

Список лучших платформ для разработки гибридных мобильных приложений, которые можно использовать для создания мобильных приложений.

293. PHP 8.1: новые функции, о которых вам нужно знать

мы рассмотрим новую функцию Fibers в будущем обновлении PHP

294. Тестирование производительности ORM Python на основе эталонного теста TPC-C

Объектно-реляционные преобразователи (ORM) часто используются в программировании на Python, когда нужно разработать приложение, работающее с базами данных. Примерами ORM Python являются SQLAlchemy, Peewee, Pony-ORM и Django. При выборе ORM решающую роль играет производительность. Но как эти наборы инструментов сравниваются? Тесты производительности ORM предлагают некоторую ясность, но оставляют значительные возможности для улучшения. Я изучаю и расширяю качественный эталон ORM, чтобы разработать более надежный показатель.

295. Дилемма платформы Low-Code и No-Code

С течением времени методы программирования упрощались, поэтому приложения можно было разрабатывать и доставлять быстро. Это привело к популярности low-code, а затем и no-code подхода к разработке приложений. Как low-code, так и no-code используют визуальный подход перетаскивания для более эффективного создания бизнес-приложений. Идея состоит в том, чтобы сократить или заменить сложное кодирование конфигурационным подходом. Это позволяет гражданским разработчикам быстро создавать и тестировать приложения.

296. Повышение производительности Formik, когда он работает медленно (Material UI)

Исправьте медленную работу Formik. Увеличьте производительность Formik при использовании полей ввода. Происходит, когда вы используете библиотеки пользовательского интерфейса на основе CSS-In-JS, так как они постоянно перерисовываются.

297. Как безопасно использовать React.JS

Легче найти лекарство и защититься от известного врага, если вы знаете самые распространенные уязвимости React.

298. Как фильтровать изображения NSFW и программно их размывать

В этой статье вы узнаете, как обнаруживать NSFW и неприемлемые изображения и программно размывать их.

299. Язык программирования для проектов машинного обучения

…и почему Python де-факто используется в машинном обучении

Python – фактически язык программирования, используемый для машинного обучения. Это связано с его простотой и удобочитаемостью, что позволяет пользователям сосредоточиться на алгоритмах и результатах, а не тратить время на эффективное структурирование кода и обеспечение его управляемости.

300. Десять полезных приемов Git Log

Если вы какое-то время используете Git, вы должны были наткнуться на git log. Как всем известно, git log — это простая команда, которая помогает нам просматривать изменения или историю проекта.

301. Еще один шаблон Lightning Hydra для экспериментов с машинным обучением

Гибкий и масштабируемый шаблон на основе PyTorch Lightning и Hydra. Эффективный рабочий процесс и воспроизводимость для быстрых экспериментов машинного обучения.

302. 5 лучших практик по разработке RESTful API

API-интерфейсы RESTful повсюду, они обеспечивают большую часть современного мира, чем любая другая архитектура API. Согласно этому исследованию, проведенному ProgrammableWeb, на долю REST приходится до 80% API. То, как построены и структурированы эти API, может создать или разрушить компанию в современном сверхконкурентном мире. Плохо спроектированные API-интерфейсы могут быть сложны в использовании, могут дать сбой, когда они больше всего нужны, и являются ценными целями для хакеров, ищущих конфиденциальные данные. С другой стороны, хорошо продуманный API, использующий передовой опыт, упрощает разработку, привлекает новых клиентов и вызывает доверие у пользователей, что может повысить коэффициент удержания.

303. Алгоритм пузырьковой сортировки: как развить вычислительное мышление

Вы когда-нибудь чувствовали себя перегруженными проблемой алгоритма и не знали, с чего начать?

304. Интервью инженера-программиста на Facebook : Советы и хитрости

Здравствуйте, меня зовут Николай, я веб-разработчик.

305. C# HTML в PDF — пример кода

IronPDF — идеальное решение для преобразования HTML-сайтов в проекты .NET и .NET core. Он не только преобразует HTML, но и имеет множество других полезных возможностей

306. Как создать ChatOps-бота с помощью Slack и Kubernetes

ChatOps позволяет вам управлять задачами DevOps с помощью интерфейсов на основе чата. Узнайте, как создать простого бота для управления кластером Kubernetes с помощью Slack.

307. Как создавать всплывающие уведомления в приложениях React

В этой статье я покажу вам, как использовать Tailwind для добавления стильных элементов дизайна.

308. Легче просить прощения, чем разрешения : Рассказ о эксцентричности Питона

Фото Криса Рида на Unsplash

309. Основы Bootstrap 5

Самая популярная в мире платформа с открытым исходным кодом, используемая разработчиками с HTML, CSS и JavaScript, готова к выпуску новой версии — Bootstrap 5 в ближайшее время!

310. Реакция на React.js

Буквально месяц назад в сообществе Vue.js был ажиотаж, что Vue.js получил больше звезд, чем React.js на github. Звезды, как голливудские звезды? Правда, нет, лол, но, может быть, метафорически… или философски?

311. Написание простого приложения MVC (модель, представление, контроллер) на ванильном Javascript

Работая над своими навыками работы с интерфейсом, я хотел посмотреть, как может выглядеть реализация шаблона MVC в простом ванильном приложении Javascript.

312. Как легко управлять списками контроля доступа в Symfony

Ни для кого не секрет, что ACL могут быть хитрыми. Поскольку избиратели кажутся альтернативой ACL, рекомендованным Symfony, я недавно решил написать свой собственный простой в использовании пакет Symfony 5 для управления списками управления доступом (ACL) в моих приложениях.

313. Шпаргалка по Git

Git — одна из самых популярных систем контроля версий. Вы можете думать о ней как о способе делать моментальные снимки (коммиты в номенклатуре Git) вашего кода в определенном состоянии и в определенное время, на случай, если вы позже все испортите и захотите. чтобы вернуться к стабильной версии вашего кода. Это также отличный способ совместной работы, если вы объедините его с GitHub.

314. Javascript: от объектов к фабричным функциям и модулям

Объекты

315. 7 лучших приложений для детей, которые помогают геймифицировать программирование

Большинство родителей не могут дать своим детям надлежащее образование в области программирования из-за отсутствия курсов программирования в начальной школе. Многие родители не имеют возможности самостоятельно обучать программированию. Если вы хотите, чтобы ваши дети не отставали от современного образования, и ищете способ научить их основам компьютерного программирования и кодирования, ознакомьтесь с некоторыми из этих лучших приложений для кодирования для детей.

316. 8 лучших фреймворков машинного обучения на основе JavaScript и amp; Библиотеки

Невероятный рост новых технологий, таких как машинное обучение, помог веб-разработчикам создавать новые приложения ИИ проще, чем когда-либо. В настоящее время большинство энтузиастов и разработчиков ИИ в этой области используют фреймворки Python для ИИ и приложений. развитие машинного обучения. Но, осмотревшись, можно также обнаружить, что фреймворки на основе JavaScript также внедряются в ИИ.

317. Ява или Питон? Что лучше для обучения программированию?

Привет, ребята, если вы думаете о карьере в области технологий, таких как программирование, веб-разработка, наука о данных, автоматизация тестирования, машинное обучение и другие виды карьеры, Java и Python — два самых популярных и влиятельных языка программирования в настоящее время и в будущем, с которых можно начать. .

318. 7 лучших языков программирования для изучения в 2021 году

Индустрия разработки программного обеспечения процветает, и самое приятное то, что она хорошо окупается! Всегда был спрос на хороших и квалифицированных разработчиков программного обеспечения, и именно поэтому все больше и больше людей изучают коды, поскольку это наиболее привлекательный вариант карьеры. Однако с появлением в отрасли новых навыков, технологий и языков программирования разработчикам все труднее понять, с чего начать.

319. Как написать тесты на Golang как эксперт

Golang: простой бенчмаркинг

В этой статье мы увидим, как можно использовать утилиту эталонного тестирования golang для простого написания эталонных тестов. Кроме того, мы увидим, как построить график

320. Боитесь изменений в базе данных? Возьмите их под контроль с помощью CI/CD

Разработчики часто опасаются изменений в базе данных, потому что ошибка любого члена вашей команды может привести к серьезному сбою и даже потере данных. Ставки выше, когда изменения не совместимы с предыдущими версиями, не могут быть отменены или влияют на производительность системы. Это может вызвать неуверенность и замедлить скорость вашей команды. В результате изменения базы данных являются распространенной точкой отказа в Agile и DevOps.

321. Когда начинать подавать заявки на вакансию веб-разработчика

Когда я учился веб-разработке, я всегда думал про себя: «Готов ли я начать подавать заявки на работу», «Сколько вещей мне нужно знать, прежде чем я начну подавать заявки на работу», «Когда я должен начать подавать заявки на работу». Это, вероятно, один из самых важных вопросов в вашей карьере веб-разработчика, и большинство людей не могут с ним справиться.

322. Случился COVID, и я решил бросить игры и начать программировать

Ни для кого не секрет, что сегодня, во время глобальной пандемии, не похожей ни на что за более чем сто лет, многие люди застряли дома и не могут работать по собственному выбору. Это огромное неудобство, когда мы месяцами чувствуем себя запертыми в ловушке и скучаем в собственном жилище, оставляет многих из нас с потоками эмоций, такими как беспокойство, безнадежность, депрессия и многими другими не очень хорошими вещами. �� С другой стороны, сейчас самое время освоить новые навыки гибкости ума.

323. Как делать запросы через браузер Tor с помощью Python

Чтобы выполнять запросы через Tor с использованием Python3, мы будем использовать библиотеку контроллеров Python для Tor под названием Stem.

324. Почему дизайнеры должны понимать, как работают разработчики

Дизайнерам легко раздражаться на разработчиков. Возможно, они не могут правильно расположить кнопку; или функция, которую вы считаете важной для вашего UX, находится слишком далеко в списке незавершенных работ для вашего удобства.

325. Представляем Github1s: средство просмотра проектов VSCode на основе браузера

Github1s – это новый популярный проект с открытым исходным кодом, который позволяет вам просматривать репозитории Github в пользовательском интерфейсе, похожем на VSCode, прямо в браузере.

326. Как подготовиться к собеседованию по программированию за 8 недель

На момент написания этой статьи рынок был жестким. Мы сильно пострадали от смертельного пандемия, оставившая тысячи людей без работы. Повсюду увольнения, и компании консервативны, когда дело доходит до прием на работу.

327. Python для веб-разработки: плюсы и минусы Минусы и лучшие фреймворки

Язык программирования Python за последние несколько лет стал одним из самых популярных среди веб-разработчиков. Разнообразие его фреймворков, кроссплатформенность и простой синтаксис ежедневно привлекают тысячи новых поклонников. Здесь мы поговорим о самых популярных фреймворках Python для веб-разработки, какие из них стоит выбрать для своих проектов и почему Python заслуживает места в вашем арсенале знаний.

328. 9 концепций функционального программирования, которые должен знать каждый

В этой статье будут представлены концепции функционального программирования, которые должен знать каждый программист. Давайте начнем с определения того, что такое функциональное программирование (далее FP). FP — это парадигма программирования, в которой программное обеспечение пишется путем применения и составления функций. Парадигма — это «философская или теоретическая основа любого рода». Другими словами, FP позволяет нам думать о проблемах как о взаимосвязанных функциях.

329. Прогнозы ИИ на 2022 год и далее

Однако, как снова и снова доказывает время, человечество не способно воспроизвести тот же тип ИИ, который мы видим в кино. пока.

330. Рендеринг на стороне сервера в Angular

Технология, которая позволяет нам запускать наши приложения Angular на сервере, описана в документации Angular как Angular Universal.

331. Введение в шаблоны объектно-ориентированного проектирования

После достижения определенного уровня опыта & проведя достаточно времени в индустрии, я осознал важность проектирования/архитектуры системы &amp;amp;amp;amp;amp;amp;amp; программное обеспечение. Поэтому я начал изучать дизайн системы/программного обеспечения. узнал, что ничто не может быть лучше начала, чем шаблон проектирования. И первое, что я сделал, это погуглил «Что такое шаблон проектирования?» Отсюда и возникла идея этой статьи.

332. Как в 10 раз увеличить свой код [и свою зарплату]

В основе десятикратной разработки программного обеспечения лежит эффективность.

333. Создадим оболочку Linux [Часть I]

С первых дней Unix оболочка была частью пользовательского интерфейса с операционной системой. Первая оболочка Unix (оболочка Thompson) имела очень ограниченные возможности, в основном перенаправление ввода-вывода и конвейеры команд. Более поздние оболочки расширили эту раннюю оболочку и добавили все больше и больше возможностей, что дало нам мощные функции, включая расширение слов, замену истории, циклы и условные выражения, среди многих других.

334. Backend-in-the-frontend: шаблон для более чистого кода

Эта статья предназначена для тех случаев, когда вы получаете не те данные, которые вам нужны.

335. 5 вредных привычек разработчиков ПО

Не существует жестких и быстрых правил относительно того, как программист должен программировать. Так что нет ничего плохого в том, что у вас есть свой стиль программирования.

336. Как создать Golang REST API: конфигурация макета проекта [часть 3]

Хороший торт — это тот, который можно легко разрезать на части, при этом крошки не разваливаются. Вот и весь этот проект: 3 простые детали, никаких неприятных добавок. В части 1 и части 2 я объяснил основы настройки проекта golang с помощью докера, создания настраиваемого сервера, взаимодействия с БД, добавления маршрутов и обработчиков.

337. Преимущества использования Node.js: кэширование, масштабируемость и богатая экосистема

Если вам интересно, почему Node.js так популярен среди разработчиков, вот список преимуществ использования Node.js

338. Как создать уровень данных GraphQL для микросервисов REST

GraphQL — отличная технология для микросервисов REST. Узнайте, как создать уровень данных для микросервисов без написания кода!

339. 7 лучших инструментов кодирования на основе ИИ

7 самых инновационных инструментов с низким кодом на основе искусственного интеллекта (и особенно ChatGPT).

340. 10 лучших фреймворков Python на Github

Вот список из десяти фреймворков Python с самым высоким рейтингом на GitHub.

341. Вызов команд оболочки из Python: OS.system vs Subprocess

Если вы программист Python, вполне вероятно, что у вас есть опыт написания сценариев оболочки. Нередко приходится сталкиваться с задачей, которую кажется тривиальной для решения с помощью команды оболочки. Поэтому полезно знать, как эффективно вызывать эти команды из кода Python, и знать их ограничения.

342. Стоит ли изучать Javascript в 2021 году?

Итак, вы хотите изучать программирование, но не знаете, какой язык программирования выбрать. Это положение, в котором в какой-то момент оказывался каждый программист.

343. Как навсегда избавиться от раздражающих IF

Почему первая инструкция, которую мы учимся программировать, должна использоваться последней.

344. 10 лучших библиотек ведения журналов Node.js

10 лучших библиотек ведения журналов Node.js + как с ними начать работать. 1. Пино, 2. Уинстон, 3. Баньян.

345. Мой рабочий процесс кодирования: как я работаю из разных мест в качестве инженера-программиста

Кодирование — нелегкий процесс, особенно если вам нужно быть очень сосредоточенным, чтобы сделать это относительно быстро и без ошибок. Сосредоточиться только на написании кода — довольно сложная задача, но эта история больше о том, как сделать идеальную настройку для кодирования из любого места, где есть Интернет и браузер!

346. Программирование с помощью Serenade: голосовое программирование без помощи рук

Serenade – это программа для преобразования голоса в код, которую можно подключить к нескольким популярным интегрированным средам разработки, таким как VS Code и IntelliJ.

347. Как создать файл PDF из списка изображений с помощью Python

Руководство по созданию PDF-файлов из набора изображений с помощью Python.

348. Как изучить принципы проектирования SOLID за ≈5 минут

Принципы проектирования SOLID делают программное обеспечение гибким, удобным для чтения и сопровождения. Решайте такие проблемы, как жесткость, хрупкость, неподвижность и вязкость

349. Генерация одноразового пароля с использованием Speakeasy, Nest.js и MongoDB

Здесь мы спроектировали и разработали поток OTP (одноразовый пароль) для регистрации пользователя, а также блокировки учетной записи пользователя после превышения максимального количества повторных попыток для неправильного otp.

350. Создайте простое приложение Todo с помощью React Native и TypeScript

Как настроить React Native и создать простое приложение ToDo

351. Как настроить рабочий процесс удаленной разработки с помощью VS Code в браузере

В этом руководстве я расскажу о настройке VS Code-Server с помощью DigitalOcean, а также о настройках, которые я использовал для создания чистого и простого рабочего процесса.

352. Юнит-тесты — пустая трата времени?

Модульные тесты — пустая трата времени: вы всегда будете тратить больше усилий на их поддержку, чем на написание кода

353. Изучение основ MongoDB путем написания API регистрации пользователей

Изучение MongoDB было одним из пунктов моего контрольного списка в течение последних 6 месяцев, но до сих пор я не занимался его изучением. Чтобы понять, как писать запросы и все такое, я подумал, что лучше что-то сделать, а не просто читать и смотреть какие-то туториалы. Итак, я решил сделать API для регистрации пользователей, т. е. простую регистрационную форму, в которой на данный момент есть только функции регистрации и входа. Поскольку основным намерением было изучение Mongo, я решил просто сделать основное приложение, которое представляет собой серверную часть, а не внешний интерфейс, поскольку в этом нет необходимости, и я ненавижу это делать.

354. Как автоматически исправлять код: руководство для веб-разработчиков

Обучение программированию может быть очень увлекательным, но зачастую оно утомительно. Веб-разработчики, особенно новички, постоянно изучают новый контент. Что еще хуже, так это то, что существует так много правил обучения написанию хорошего кода.

355. 13 идей дизайна веб-сайтов для дизайнеров UI/UX

Независимо от того, являетесь ли вы опытным дизайнером веб-сайтов или разработчиком или просто новичком, расширение проекта по архитектуре веб-сайта может быстро ограничить количество доступных ресурсов, что сделает поиск правильного дизайна веб-сайта для мотивации вашего задания чрезвычайно сложным.

356. Хранение изображений в приложениях Rails с использованием Cloudinary и Active Storage

В Ruby on Rails есть замечательный инструмент для загрузки, хранения и отображения изображений: Active Storage. Его очень легко использовать, и он поставляется с локальным дисковым сервисом, которого должно быть достаточно для хранения всего, что вам нужно, если вы просто хотите попрактиковаться в использовании Rails.

357. Эффективный рабочий процесс кодирования: настройка моего кода VS

Есть много редакторов кода, некоторые бесплатные, а некоторые платные. Среди них мой любимый редактор кода — Visual Studio Code. Это бесплатно и имеет удивительные функции. Я использую его с самого начала своего пути в веб-разработке.

358. Полное руководство по микросервисам: введение [часть 1]

Ссылка на проект: https://github.com/Joker666/microservice-demo/

359. Прохождение Лямбда-школы

Я решил написать этот пост до того, как узнал о недавних хитах против Lambda School (LS), которые были опубликованы (особенно этот от The Verge и этот от New York Magazine). В свете этих двух частей я думаю, что время идеально подходит для того, чтобы отправиться в путешествие по тому, как для меня было проходить через LS. В прошлом году я был зачислен в 19-ю группу WEB-курса и только что закончил его в ноябре прошлого года. Я надеюсь, что этот пост поможет другим потенциальным учащимся принять более взвешенное решение.

360. Обзор проблем с кодированием Java

Недавно я купил книгу «Проблемы Java-кодирования» Энгела Леонарда, потому что темы, затронутые в этой книге, заинтересовали меня как инструктора по Java. Я решил купить его после того, как увидел TOC здесь. Поскольку Java начала развиваться довольно быстро, мне трудно быть в курсе последних событий, и довольно легко пропустить новые функции Java или не иметь времени для их подробного изучения.

361. Проверка кода не работает: лучший способ создавать ПО

Не говорите мне о пул-реквестах. Они тоже не работают

362. Запуск приложений Linux как Unikernels с помощью K8S

Если вы читали некоторые из моих предыдущих статей, вы могли подумать, что я никогда не напишу эту, да? 🙂 Ну вот.

363. Как получить доступ к свойствам объектов в Observables как настоящий эксперт

Привет, стример RxJS! ��

364. Методы функционального программирования на Java с примерами

Если вы разработчик Java, я уверен, что вы хотя бы раз видели код, похожий на приведенный выше фрагмент изображения. Код в приведенном выше фрагменте является примером реализации парадигмы функционального программирования на Java, которая будет фильтровать и преобразовывать список List в запросе в другой список .

365. Чему я научился за 6 месяцев обучения программированию

Любой, кто хотел научиться кодированию, знает, что это совсем не просто. На пути вы столкнетесь с трудностями и неожиданными препятствиями. Вы сталкивались с ними, я сталкивался с ними.

366. Можете ли вы действительно кодировать без операторов IF?

Я был на семинаре по ООП Санди Метц несколько лет назад. Она отметила, что на одном из ее предыдущих мест работы операторы if не использовались.

367. Как я взломал свой мозг, чтобы запустить свой самый продуктивный кодинг

Моим первым проектом в качестве разработчика в Hacker Noon было создание и открытие исходного кода расширения Chrome для блокировки сайтов с платным доступом в результатах поиска. Вот что я узнал.

368. Музыка для работы

Фото Городенкова на растворении

369. Как настроить кэширование в Node.js с помощью Redis

В этой статье мы собираемся реализовать кэширование в узле js. приложение с использованием Redis, но, прежде чем мы углубимся в реализацию подробности, давайте рассмотрим, что такое кэширование и как оно может помочь производительность нашего приложения.

370. Как Stream Processing улучшает вашу управляемую событиями архитектуру

Если вы архитектор или разработчик, занимающийся архитектурой, управляемой событиями, потоковая обработка может быть именно тем, что вам нужно, чтобы сделать ваше приложение более быстрым, более масштабируемым и более несвязанным.

371. Хуки React: разница между useMemo и useCallback

Библиотека React предоставляет нам два встроенных хука для оптимизации производительности нашего приложения: useMemo & использоватьОбратный звонок. На первый взгляд может показаться, что их использование очень похоже, поэтому может возникнуть путаница в том, когда использовать каждый из них. Чтобы прояснить эту путаницу, давайте углубимся и поймем реальную разницу и правильный способ их использования.

372. Как получить работу разработчика без опыта (как я)

Вы можете многое сделать, чтобы повысить свои шансы получить первую работу в сфере технологий. Ваши навыки программирования — это еще не все. Без опыта вам нужно будет предпринять шаги, чтобы убедить работодателей в том, что вы заслуживаете шанса. Вот как я это сделал.

373. Креативные шаблоны проектирования в JavaScript: краткое руководство

Механизмы создания объектов повышают гибкость и возможность повторного использования существующего кода. Здесь, в этом посте, мы увидим шаблон создания объектов в JavaScript

374. Ключевое слово Throw было ошибкой

Обработка исключений

375. Принципы проектирования программного обеспечения: правильное выполнение мелочей

Проектирование программных систем связано с компромиссами, а принимать компромиссные решения сложно. Вам всегда кажется, что вы теряете то одно, то другое, но сегодня мы поговорим не об этом.

376. Как создать простой тест с несколькими стеками с помощью тестовых контейнеров

Бэкенд-инжиниринг в настоящее время может потребовать интеграции нескольких сервисов. Инженерам тяжело устанавливать множество сервисов в своей локальной среде разработки. Docker предоставил более простой способ сделать это, но для этого все равно потребуется некоторый скрипт вне нашего кода. У него также не было идеального решения, если мы хотели протестировать меньшие функции или классы, а не весь сервис. Эта проблема была решена Testcontainers [1].

377. 10 лучших веб-фреймворков Python: выпуск 2020

Python, несомненно, является самым популярным языком программирования высокого уровня, который идеально подходит для написания сценариев и разработки веб-приложений. Он имеет простой для изучения синтаксис, который позволяет программистам выражать концепции с меньшим количеством кода. Кроме того, этот язык программирования общего назначения имеет динамическую систему типов, управление памятью, обширную стандартную библиотеку и многие другие функции.

378. Объяснение различий PostgreSQL

Обычный процесс разработки требует непрерывного исправления рабочей базы данных с локальными изменениями, которые обычно автоматически вносятся программным обеспечением orm. Этот метод не идеален, но обманчиво прост, все, что мы будем использовать, это стандартные команды Unix, и этого достаточно для нас.

379. 7 лучших бесплатных платформ для изучения React

React — это библиотека JavaScript, разработанная Facebook для создания современных приложений. React заботится об уровне представления и может использоваться для создания как веб-приложений, так и мобильных приложений.

380. Как внедрить localStorage или Firebase Firestore в ваш JS-проект

Я отличный читатель, я люблю книги и стараюсь читать как можно больше, независимо от темы, какой угодно, фэнтези, комедии, научной фантастики, познавательного. Книги переносят меня в другой мир, они заставляют меня чувствовать , заставь меня думать, заставь меня расслабиться и заставь меня отключиться от ежедневного графика. Я не могу жить без них.

381. Узнайте, как использовать веб-хуки, подключив NodeJS, IFTTT и Twitter

Узнайте, как работают веб-перехватчики, и менее чем за час создайте простую интеграцию веб-перехватчиков с Node, IFTTT и Twitter.

382. Как внедрить AngularJS и реагировать как профессионал

С момента рождения AngularJS прошло много времени. На самом деле AngularJS уже устарел, и, учитывая, как быстро развиваются интерфейсные технологии, его ценность будет снижаться по мере того, как новые фреймворки набирают популярность и завоевывают сообщество разработчиков открытого исходного кода.

383. Является ли PHP мертвым языком [Часть 2]

Эта ветка о слоганах Артура Ткаченко, Дэвида Смука, Лимарка Амбалины и Кхуншана появилась на официальном канале #programming о слоганах и была отредактирована для удобства чтения.

384. 10 советов по безопасности для фронтенд-разработчиков

Веб-безопасность — это тема, которую разработчики интерфейсов часто упускают из виду. Когда мы оцениваем качество веб-сайта, мы часто смотрим на такие показатели, как производительность, оптимизация для SEO и доступность, в то время как способность веб-сайта противостоять вредоносным атакам часто не учитывается. И хотя конфиденциальные пользовательские данные хранятся на стороне сервера, и бэкэнд-разработчики должны принимать значительные меры для защиты серверов, в конце концов, ответственность за защиту этих данных распределяется между бэкэндом и внешним интерфейсом. В то время как конфиденциальные данные могут быть надежно заперты в бэкэнд-хранилище, внешний интерфейс держит ключи от входной двери, и их кража часто является самым простым способом получить доступ.

385. Я клонировал страницу Youtube, чтобы выучить HTML & CSS, и это было потрясающе

Мое новогоднее решение в этом году состояло в том, чтобы получить удаленную работу в качестве веб-разработчика. Я рад сказать, что до сих пор мне очень повезло!

386. Создайте и разверните приложение Blazor, не касаясь компьютера с Windows

Хотите попробовать Blazor, но не являетесь пользователем Windows? Строго Linux-разработчик? Вам повезло. Одной из целей .NET Core является кроссплатформенность, поэтому сегодня мы увидим, насколько она на самом деле «кроссплатформенна» с Blazor, новым популярным проектом Microsoft по разработке интерфейсов.

387. Масштабирование потребителей Symfony с помощью Kubernetes [Руководство]

В Debricked мы уже некоторое время используем Symfony для нашего веб-сервера. Это очень хорошо послужило нам, и когда они объявили о компоненте Messenger еще в Symfony 4.1, мы очень хотели его опробовать. С тех пор мы используем этот компонент для асинхронной отправки электронной почты в очередь.

388. Как добавить собственный шрифт в проект React Native

Я только начал изучать React Native, и я должен признать, что начать с него очень просто, а горячая перезагрузка позволяет разрабатывать и перезагружать приложение в кратчайшие сроки.

389. React лидирует в движении «Инфраструктура как код»?

Что такое «Инфраструктура как код»? Если кто-то проверит кучу файлов YAML в репозиторий Git, они вдруг станут кодом? Мне это больше похоже на «Инфраструктура как файлы». Я предполагаю, что это лучше, чем инфраструктура в виде набора сценариев оболочки и некоторых команд, выполняемых вручную посреди ночи в кофейной дымке, но это далеко от кода. Как насчет системы для определения инфраструктуры, которая действительно похожа на код?

390. Максимизируйте свои навыки React: создайте приложение со списком дел от начала до конца (с помощью TypeScript + Vite)

Освойте основы создания приложения с помощью React и TS. Узнайте, как использовать состояние, свойства и поток данных для создания полнофункционального приложения.

391. 10 лучших языков программирования для веб-разработчиков, которые стоит выучить во время карантина

Если вы просто сидите дома большую часть ночи, думая, что, черт возьми, вы должны делать, радуйтесь! У меня есть список из 10 самых популярных и крутых языков программирования, которые вы можете уместить в одном мешке (или. в блоге).

392. Как настроить FastAPI, Ormar и Alembic

Из этого руководства вы узнаете, как настроить мини-асинхронный объектно-реляционный сопоставитель с миграциями для вашего следующего проекта FastAPI с помощью набора инструментов SQLAlchemy.

393. Функциональность модульного тестирования: тестирование setTimeout и setInterval

Недавно у клиента возник вопрос о функциях модульного тестирования, использующих setTimeout и setInterval.

394. Front-End разработка без Node_modules с использованием Skypack и Snowpack

Когда-то мы могли просто поместить HTML-файл и файл сценария на FTP-сервер, быстро получить работающий веб-сайт и на этом закончить.

395. Как работают код-ревью в Microsoft?

Вы когда-нибудь задумывались, как одна из крупнейших компаний-разработчиков программного обеспечения в мире обеспечивает высокое качество кода с помощью проверки кода?

396. Популярные инструменты тестирования с открытым исходным кодом без кода

Языки программирования были основной частью разработки программного обеспечения. Однако популярные инструменты тестирования с открытым исходным кодом без кода позволяют обойтись без них.

397. Почему разработчики ненавидят тесты на навыки программирования (и что могут сделать менеджеры по найму, чтобы изменить это)

Джефф Робертс

398. Изменение размера изображения после загрузки с помощью Amazon S3, AWS Lambda и CloudFront для SSL

При разработке приложения важно изменять размеры ресурсов для различных возможностей, размеров экрана и разрешений. Это важно по многим причинам.

399. CromaApp: мое первое нативное приложение React после 7 лет разработки бэкенда

Ну, я занимался разработкой javascript (node.js) в прошлом, но javascript сильно изменился после ES-6. До сих пор я в основном занимался бэкенд-разработкой на java и ruby ​​(в основном RoR). Я собираюсь поделиться своим опытом написания моего первого нативного приложения для реагирования.

400. 11 лучших расширений Google Chrome для разработчиков в 2020 году

Являетесь ли вы начинающим программистом или опытным программистом, вы проводите большую часть своего времени в Google. Если вы использовали расширения Google Chrome несколько лет назад, вы, вероятно, избегаете их сейчас или даже не подозреваете о их существовании. Но за последние несколько лет появилось много хороших расширений для разработчиков Google Chrome, специально созданных для программистов и разработчиков программного обеспечения, чтобы помочь им в их работе.

401. Как я начал заниматься хакерством

Все началось с видеоигр.

402. Разработка токена Ethereum с использованием Java и web3j [Обзор]

Для этого мы будем использовать созданный мной базовый смарт-контракт ERC20 под названием JavaToken, который вы можете найти здесь. Мы будем использовать его и репозиторий в демонстрационных целях, так что не стесняйтесь клонировать его и повторяйте! Сеть, которую мы будем развертывать и запускать, будет локальной тестовой сетью Ganache с использованием Truffle.

403. Методы асинхронного программирования с Kotlin

Введение в сопрограммы Kotlin по сравнению с Futures/Promises, такими как Mono в Reactor или CompletableFuture в Java

404. Как оптимизировать фоновые задачи с помощью Hangfire и ASP.NET Core

Hangfire — это библиотека .NET, которая упрощает добавление фоновых задач в ваше приложение .NET. Он поддерживает одноразовые задачи «запустил и забыл», а также планирование повторяющихся задач. Кроме того, он поддерживает сохранение, поэтому все ваши задачи будут продолжать существовать даже после перезапуска приложения.

405. 3 лучших языка программирования для Java-разработчиков

Если вы программист Java и думаете об изучении еще нескольких языков программирования, чтобы расширить свои знания и навыки, но не знаете, какой язык программирования выбрать, то вы попали по адресу.

406. Что нового в .NET 5

На этой неделе был официально выпущен .NET 5.0, который принес ряд улучшений в экосистему .NET. Как и многие разработчики .NET, я быстро скачал его и протестировал. В этой статье обсуждаются некоторые из самых интересных новых функций .NET 5.

407. Как правильно использовать Git: 10 правил, которые сделают Git более полезным

Git великолепен, если вы знаете, как его эффективно использовать. Это не просто система резервного копирования! Вот 10 лучших способов контроля версий с помощью Git.

408 . Пришло время начать изучать программирование: 20+ лучших веб-сайтов для изучения программирования в 2020 году

Я уверен, что многие из нас задаются вопросом, как оставаться актуальным профессионалом в постпандемическом мире. Одним из способов, очевидно, является обучение программированию. Теперь, когда темпы роста отрасли составляют 21 % (выше, чем в любой другой сфере), становится ясно, что спрос на хороших разработчиков никуда не денется.

409. Реальные примеры использования шаблонов проектирования в современном PHP

Шаблоны проектирования являются неотъемлемой частью разработки программного обеспечения, предоставляя общий язык и рекомендации для решения повторяющихся проблем.

410. Пожалуйста, не используйте OFFSET и LIMIT для нумерации страниц

Прошли те времена, когда нам не нужно было беспокоиться об оптимизации производительности базы данных.

411. Создание Graphql API с помощью Spring Boot, Neo4j и Kong [Часть 2]

Часть 1 этой серии содержит подробное описание сервера GraphQL и того, как начать его настройку с помощью Springboot, языка определения схем (SDL) и его типов.

412. Разделяй и властвуй: бинарный поиск в JavaScript

В начале вы, скорее всего, попытаетесь использовать метод грубой силы для решения поисковых задач; это потому, что это самый простой и элементарный способ найти цель. Однако грубая сила требует времени; Обозначение грубой силы Big O обычно и недопустимо равно или больше, чем bigO (n²).

413. Действительно ли PHP мертв? – Статистика по слогам

Этот пост о слогане является опровержением идеи о том, что PHP не умер и многие веб-сайты все еще используют его.

414. Классные трюки с переменными CSS, которые стоит попробовать

В этой статье мы рассмотрим несколько интересных хаков, позволяющих использовать пользовательские свойства для того, что казалось бы невозможным без препроцессоров или JS.

415. Мастер микросервисов

Что мне действительно нравится в жизни в городе, так это то, что он создан для масс. Несмотря на множество недостатков (дождь не является одним из них), Сиэтл спроектирован так, чтобы сотни тысяч людей могли пережить свои напряженные дни. У него есть транспортная система, которая соединяет разные районы, он предписывает разные правила землепользования для парков, жилых домов, магазинов и школ, а также предусматривает зоны ограниченной парковки. Он предназначен для пеших прогулок (при условии, что вы любите холмы), обеспечивает легкий доступ к больницам и охраняется полицией и пожарными.

416. Топ-10 крупных компаний, использующих Python

В настоящее время используется более 500 языков, и, пока мы говорим, пишется гораздо больше. Выбор языка программирования — это первый шаг к началу цикла разработки. Десять лет назад разработчики не беспокоились о выборе технологий, поскольку у них не было доступа к множеству вариантов. Предпочтение языка теперь основано на характеристиках проекта и многих подобных факторах.

417. Введение в библиотеку 3D Javascript: основы Three.js

Сложность Интернета меняется ежедневно, и его масштабы растут так же быстро, особенно с 3D-рендерингом.

418. Совместное использование повторно используемых компонентов Angular

При создании приложений Angular вы создаете пользовательский интерфейс своих приложений с помощью общих повторно используемых компонентов Angular.

419. Шаблоны проектирования: изучение фабричного метода в современном C++

В программной инженерии шаблоны креативного проектирования имеют дело с механизмами создания объектов, т. е. пытаются создавать объекты способом, подходящим для ситуации. В дополнение к этой базовой или обычной форме создание объекта может привести к проблемам с дизайном или усложнить дизайн.

420. Инструмент для исправления кода SQL с помощью ChatGPT

С помощью ChatGPT теперь вы можете максимально эффективно использовать свои SQL-запросы.

421. Понимание разницы между Object.create и оператором New

Существует два способа создания объекта в Javascript: оператор Object.create и New. Несмотря на то, что они очень похожи, у них есть свои тонкие различия.

422. 7 потерь в бережливой разработке программного обеспечения [и как их предотвратить]

В 1930-х годах производственная система Toyota дала нам принципы бережливого производства. Теперь индустрия ИТ, программного обеспечения и веб-разработки также приняла эти принципы для улучшения своих производственных процессов. На самом деле концепции и принципы бережливого производства используются не только в производстве. Тем не менее, в области ИТ и программного обеспечения все еще есть те, кто указывает на Agile-разработку, когда они упоминают Lean и разработку программного обеспечения в одном и том же контексте. Хотя верно то, что принципы Agile и Lean имеют сходную философию, между ними есть ключевые различия. Погружаясь глубоко внутрь бережливого производства, я расскажу о том, о чем говорит бережливое производство, помимо его ключевых моментов.

423. 10 распространенных уязвимостей Java, о которых должен знать каждый инженер по безопасности

В этой статье рассматриваются наиболее распространенные уязвимости безопасности при программировании на Java

424. Включение файлов и глубоких каталогов в Rust

Одна из вещей, которая подвергается критике со стороны новичков в Rust, — это механизм включения файлов. Около 2 дней назад я потратил около 5 часов на то, как я должен был включить файл, на который есть ссылка глубоко в дереве каталогов. Документы не помогли, так как это были простые структуры. Здесь я покажу вам, как вы можете включить свой код в разные части приложения, даже если структура сложна, и сэкономлю вам часы на том, как выполнить эту предположительно тривиальную задачу.

425. «Балерина» может стать языком программирования интеграции

Ballerina — это последний язык программирования, выпущенный в версии 1.0 10 сентября этого года. Существует более тысячи языков программирования. Зачем вам еще один язык программирования? Язык Ballerina предназначен для упрощения конкретной области программирования, известной как интеграция. Вы можете быть разработчиком, который разрабатывает различные виды веб-сервисов и намеревается соединить эти сервисы. Тогда язык Ballerina может стать вашим следующим компаньоном по программированию.

426. Что на самом деле думают инженеры о техническом долге?

Моя команда в Stepsize опросила более 200 инженеров и опубликовала отчет о состоянии технического долга в 2021 году, в котором рассматривается влияние технического долга на компании.

427. Лучшие ресурсы Python для начинающих

Новичок в Python? Или вы уже являетесь опытным разработчиком и хотите улучшить свои знания Python? Мы собрали подборку рекомендуемых ресурсов для всех, кто хочет изучить программирование на Python. Мы разработали эти ресурсы, чтобы они подходили для разработчиков Python всех уровней, но перечисленные ресурсы будут наиболее применимы для тех, кто еще только начинает обучение или уже знаком с основами, но не очень продвинут.

428. 12 сочетаний клавиш кода Visual Studio для более быстрого написания кода

Есть несколько отличных инструментов и расширений, которые могут помочь вам получить удовольствие от написания кода в VS Code. Это здорово и все такое, но может быть шанс, что вы упустите некоторые замечательные ярлыки, которые предлагает код VS. Вот почему эта статья здесь, чтобы помочь вам с некоторыми из наиболее полезных ярлыков для более быстрого написания кода.

429 . Hacktoberfest 2019: Как получить БЕСПЛАТНУЮ футболку , даже если вы новичок в программировании

Каждый октябрь Digital Ocean и GitHub бесплатно раздают футболки Hacktoberfest тысячам людей по всему миру.

430. Создайте средство отслеживания цен на криптовалюту с помощью Node.js и Cassandra

С тех пор, как полтора десятилетия назад произошел большой взрыв в области технологий обработки данных, в результате которого появились такие технологии, как Hadoop, которые удовлетворяют четырем требованиям. — объем, разнообразие, скорость и достоверность. Наблюдается всплеск использования баз данных со специализированными возможностями для обслуживания различных типов данных и моделей использования. Теперь вы можете увидеть компании, использующие базы данных графиков, базы данных временных рядов, базы данных документов и другие ресурсы для различных клиентских и внутренних рабочих нагрузок.

431. Заголовки безопасности NodeJS: 101

Когда мы говорим о безопасности любого веб-приложения, это многомерная вещь, которая включает в себя ряд различных аспектов:

432. Причины, по которым вы должны выбрать курс Microverse Coding для начинающих

Привет, мир! Меня зовут Сайод, и я финансист. У меня почти 5 лет опыта работы в банке. С детства я любил работать на компьютере и играть в видеоигры. В то же время эта любовь привела меня к созданию таких программ и игр. Это желание не покидало меня даже во время учебы в университете, а также в рабочее время. Мой разум всегда думал об этом. Все свое свободное время я тратил на поиски того, как научиться кодировать с нуля. Если вы будете терпеливо бродить по Интернету, как я, вы можете найти слишком много сайтов и курсов, которые обучают вас онлайн и обещают стать великим разработчиком. Здесь я расскажу вам вкратце о моих результатах поиска. Я хотел бы разделить их на 2 типа: платные и бесплатные.

433. Основное руководство по обработке изображений с помощью WebAssembly

Простые манипуляции с изображениями с помощью WebAssembly и AssemblyScript в веб-браузере.

434. Как очистить историю Git

Неформальный разговор о некоторых очень полезных командах git.

435. Как я превратил свой стол с ручной рукояткой в ​​стол IoT (часть 1)

В этой статье я покажу вам, как я преобразовал свой рабочий стол с ручной рукояткой в ​​автоматизированный стол, подключенный к Интернету вещей. Я расскажу о том, как определить размер и выбрать двигатели, а также о том, как подключить ваши устройства Интернета вещей к Google, используя Heroku в качестве общедоступного интерфейса.

436 . Как настроить Selenium в Visual Studio для автоматического браузерного тестирования веб-приложений

В этом руководстве по Selenium C# мы поможем вам настроить Selenium в Visual Studio и запустить ваш первый пример скрипта Selenium C#.

437. Уровни изоляции транзакций PostgreSQL с примерами Go

Иллюстрация составлена ​​из MariaLetta/free-gophers-pack, оригинальный суслик Рене Френч.

438. Вопросы для собеседования по технической науке о данных: SQL и программирование

Собеседование по науке о данных состоит из нескольких раундов. Один из таких раундов включает в себя теоретические вопросы, которые мы рассмотрели ранее в более чем 160 вопросах интервью по науке о данных.

439. Объяснение функции карты JavaScript: глубокое погружение

Мы рассмотрим функцию карты JavaScript, и я объясню, как она работает, простым способом. Позже в этой статье мы углубимся в некоторые более сложные понятия, касающиеся функции карты и ее использования.

440. Программирование с помощью Shell для автоматизации

Большинство программистов используют такие языки программирования, как C, C++, Python, Javascript. Они используют оболочку для многих задач. Но большинство из них не знают, что они могут программировать с помощью оболочки для автоматизации вещей, которые мы делаем снова и снова.

441. Является ли Java лучшим языком программирования для изучения в первую очередь?

Я часто получаю вопросы, например, какой язык программирования нужно выучить первым? Является ли Java хорошим языком программирования для начала? Насколько хороша Java в качестве первого языка программирования? какой язык программирования лучше всего подходит для начинающих, или мне начать с Java или Python?

442. Пошаговое руководство по созданию и запуску расширения Chrome

Создавая свое первое расширение для Chrome, Foragear- Quick Search Tool, я изо всех сил пытался найти статью, в которой описывался бы весь процесс разработки, создания и запуска расширений для Chrome. Чтобы облегчить жизнь будущим создателям расширений Chrome, вот универсальное руководство, которое поможет вам в этом процессе.

443. Почему так сложно создавать программы?

Мы думаем о разработке программного обеспечения как о стремлении, основанном на логике. С этой точки зрения может шокировать тот факт, что проекты по разработке программного обеспечения имеют высокий уровень отказов — 31% в 2014 году. А некоторые проекты терпят неудачу на миллиарды долларов. Как возможен такой уровень хаоса в кажущейся логичной дисциплине?

444. Как выучить любой язык программирования

Все, что нужно для освоения любого языка программирования, — это правильный план обучения.

445. Как работает CORS (обмен ресурсами между источниками)?

Если вы веб-разработчик, вы, должно быть, видели ошибку «CORS», часто появляющуюся на вашем экране, когда вы пытаетесь вызвать API. Но почему это происходит?

446. Создание приложения To-Do с помощью React In Rails 6 (учебник)

Всем привет. Сегодня мы создадим todo-приложение, чтобы продемонстрировать, как использовать React с Rails 6. Это руководство будет максимально подробным и сосредоточится на выполнении операций CRUD. Наше приложение Todo поддерживает просмотр списка ваших задач, создание задачи на сегодня, создание задачи как выполненной и удаление задачи. Мы будем использовать react для создания реактивного приложения и использования материального пользовательского интерфейса для дизайна.

447. Платформы на k8s с Golang — смотрите любой CRD

Допустим, вы хотите делать с Kubernetes больше, чем запускать готовые приложения. Возможно, вы хотите объединить приложения в индивидуальную платформу. Представьте, что когда ваш пользователь нажимает кнопку, вы хотите подготовить новую базу данных или открыть новую общедоступную конечную точку.

448. Структура папок приложений Angular

Сегодня мы обсуждаем еще одну тему angular — структуру папок приложений angular.

449. Как создать калькулятор коэффициента сжимаемости в Python

Программа Python для расчета коэффициента сжимаемости на входе или выходе для заданного газа на основе уравнения состояния Редлиха-Квонга.

450. Как использовать VIM для разработки интерфейса: выпуск 2020

Почему вы хотите использовать редактор, которому почти 30 лет? Потому что это осталось навсегда, и не лучше ли научиться чему-то, что останется навсегда? Ну и еще потому, что он чертовски мощный.

451. Flutter V React Native: полное сравнение

Когда дело доходит до кроссплатформенной разработки мобильных приложений, нам на ум приходят в основном две технологии мобильной разработки. Это среда разработки приложений React Native и Flutter. Поскольку многие ведущие компании и предприятия делают выбор в пользу современных технологий, сейчас они больше, чем когда-либо, сосредоточены на технологиях мобильных приложений. В связи с этим спрос на мобильные приложения значительно вырос. Во всем мире насчитывается более 2,5 млрд пользователей смартфонов, поэтому неизбежно, что предприятия и компании обратят свое внимание на разработку мобильных приложений.

452. Как настроить виртуальную среду Python в Windows 10

Создание виртуальной среды Python позволит вам работать с изолированной копией Python для определенных проектов, не мешая и не влияя на работу других текущих проектов.

453. Начало работы с MariaDB с использованием Docker, Python и Flask

С тех пор, как в 2009 году MySQL была отделена от MySQL, за последнее десятилетие MariaDB стала одной из самых популярных баз данных, которую выбирают разработчики. Хотя многие технологи, вероятно, тяготели к нему как к решению из-за его корней с открытым исходным кодом и того, что он укоренен в мире реляционных баз данных, на самом деле это только начало того, что может предложить MariaDB.

454. 3 главные проблемы кодирования для опытных разработчиков React

Если вам нужно доказать потенциальным работодателям, что вы являетесь экспертом по React, они, скорее всего, протестируют следующие концепции React, и с ними стоит ознакомиться

455. Причины для упрощения исходного кода

Наше программное обеспечение представляет собой большой замок, образованный несколькими слоями, наложенными друг на друга и перемешанными для облегчения собственного обслуживания, но в конечном итоге создающими

456. Более 100 бесплатных курсов Pluralsight для изучения Python, Java и Spring Boot

Привет, ребята, у меня есть отличная новость, чтобы поделиться с вами. Компания Pluralsight объявила, что все их более 7000 курсов под руководством экспертов являются бесплатными в течение одного месяца в апреле 2020 года, чтобы помочь людям, остающимся дома из-за COVID-19.

457. 5 лучших языков программирования, которые должен выучить каждый разработчик программного обеспечения

Я где-то читал, что программист должен изучать новый язык программирования каждый год (я думаю, что это полный код, хотя и не уверен), но если вы не можете этого сделать, я предлагаю, по крайней мере, изучить следующие пять языков программирования, чтобы преуспеть в вашей карьера.

458. 25 лучших советов по программированию на C#

Всем привет! Существует много информации о различных функциях C#. О различных лайфхаках и лучших практиках на этом языке. Хочу рассказать вам о не менее полезных, но менее популярных советах по работе с этим языком.

459. Как сделать код НАДЁЖНЫМ

Принципы S.O.L.I.D — это общие рекомендации по написанию чистого кода в объектно-ориентированном программировании

460. Дипломы компьютерных наук: стоит ли их получать в 2021 году?

Стоит ли иметь степень информатики? Для меня частично. Для тебя? Ты мне скажи.

461. 17 интересных трюков с JavaScript

Есть много способов написать код, но, как правило, первый способ для многих очень длинный и может занять некоторое время. Вот мой последний пост, который повысит вашу эффективность и продуктивность при кодировании JavaScript.

462. Эксперты-разработчики делятся своими 10 советами новичкам, как начать успешную карьеру

Все колебания позади, и решение принято: ты станешь программистом! Ура!

463. Распознавание речи и синтез речи на Angular

Я писал чат-бота, в котором пользователь взаимодействует с ботом на основе машинного обучения, затем я хотел написать общий пример приложения, чтобы его мог использовать любой. В этом приложении не будет никакого интеллекта. Бот будет просто повторять то, что он услышал, чтобы каждый мог реализовать свою собственную логику.

464. Подключение GraphQL к Java Spring Boot и Postgres или MySQL

GraphQL меняет способы создания API разработчиками. Это позволяет запрашивать именно то, что вы хотите. Ни больше ни меньше! Это также дает вам возможность запрашивать связанные объекты за один цикл, в отличие от REST API.

465. Как легко выровнять код в Vim

Выравнивание кода, как правило, не представляет никакой ценности. Это просто для того, чтобы код выглядел красивее и легче читался.

466. 10 лучших программ IDE, которые стоит рассмотреть в 2021 году

Лучшая IDE основывается на потребностях и предпочтениях программиста. Хотя Eclipse и IntelliJ IDEA во многом могут выполнять одно и то же, некоторые пользователи могут предпочесть Jetbrains.

467. Обработка клавиатуры в iOS с использованием Swift 5

«Работа с клавиатурой в iOS» — это тема или, скорее, проблема с самого начала разработки iOS. Независимо от того, являетесь ли вы начинающим разработчиком или опытным, вы всегда будете иметь дело с управлением клавиатурой в своих приложениях! Но есть не только одна проблема с клавиатурой, о которой мы здесь говорим. Мы должны вручную решить пару проблем. Позвольте мне показать вам, что я имею в виду —

468. Как настроить предпочитаемые хранилища пользователей для аутентификации пользователей с помощью WSO2

WSO2 Identity server позволяет хранить в вашей системе несколько пользовательских хранилищ для хранения пользователей и их ролей. Должно быть одно основное пользовательское хранилище (обязательно) и любое количество вторичных пользовательских хранилищ (необязательно). При создании вторичного хранилища пользователей мы можем указать доменное имя хранилища пользователей для вторичных хранилищ пользователей. «PRIMARY» — это домен основного хранилища пользователей.

469. Руководство по парсингу веб-страниц с помощью JavaScript и Node.js

С резким увеличением объема данных в Интернете этот метод становится все более полезным для извлечения информации с веб-сайтов и ее применения для различных вариантов использования. Как правило, извлечение веб-данных включает в себя выполнение запроса к заданной веб-странице, доступ к ее HTML-коду и синтаксический анализ этого кода для сбора некоторой информации. Поскольку JavaScript отлично справляется с управлением DOM (объектной моделью документа) внутри веб-браузера, создание сценариев извлечения данных в Node.js может быть чрезвычайно универсальным. Поэтому в этом руководстве основное внимание уделяется парсингу веб-страниц с помощью javascript.

470. 10 лучших плагинов JetBrains IDE для повышения вашей продуктивности в 2021 году

Я спросил разработчиков, использующих IntelliJ IDEA: какие ваши любимые плагины для быстрой доставки качественного кода? Вот 10 самых популярных плагинов, упомянутых большинством разработчиков.

471. Мой путеводитель по 8 лучшим инструментам для разработчиков в 2021 году

Как разработчики, мы всегда беспокоимся о том, что нам может не хватать трюка, позволяющего делать вещи быстрее и лучше. Это FOMO разработчика и, вероятно, заставило вас перейти по ссылке на эту статью. Вот список инструментов разработки, которые я буду использовать в 2021 году. Возможно, здесь есть хитрость, которую вы захотите попробовать в 2021 году.

472. Алгоритмы и структуры данных, реализованные в ES6 JavaScript

Здравствуйте, читатели! Я запустил репозиторий JavaScript Algorithms and Data Structures на GitHub с коллекцией классических алгоритмов и структур данных, реализованных в ES6 JavaScript, с пояснениями и ссылками на дополнительную литературу и видео на YouTube.

473. 3 лучших языка программирования, которые программисты Java могут выучить в 2022 году

Kotlin, Scala и Groovy — три лучших языка программирования, которые Java-разработчики могут изучить в 2021 году, чтобы улучшить свой профиль и стать универсальным разработчиком

474. Как повысить продуктивность программирования с помощью Plop

Ранее я говорил о том, как Plop может помочь повысить производительность при написании кода за счет уменьшения переключения контекста. В этой статье мы рассмотрим пример и настроим генератор Plop для создания компонента React в Typescript. К концу вы сможете начать использовать Plop для создания собственных генераторов для любого типа проекта и пожинать плоды производительности!

475. Как получить SSL/HTTPS для локального хоста

Пошаговое руководство по переходу на https://localhost:3000 Создайте сертификат, чтобы сделать себя центром сертификации (ЦС), который может подписывать SSL-сертификаты.

476. Вводное руководство по обнаружению объектов в реальном времени с помощью Python

Исследователи уже много лет изучают возможности дать машинам возможность различать и идентифицировать объекты с помощью зрения. Этот конкретный домен, называемый Computer Vision или CV, имеет широкий спектр современных приложений.

477. Лучшие библиотеки Java, которые должен знать каждый разработчик

В этой статье описываются библиотеки Java, такие как Apache Commons, Guava, Log4j2, Logback, SLF4J, JUnit, TestNG, Mockito, Hamcrest, AssertJ, Jackson, Gson, JAXB, StAX

478. Узнайте, как реализовать Ninject в ASP.NET MVC всего за 2 минуты

Ninject — это молниеносный и сверхлегкий инжектор зависимостей для приложений .NET. Используя его, вы можете разделить свое приложение на набор слабо связанных, сильно связанных частей, а затем гибко склеить их вместе. Это упрощает написание, повторное использование, тестирование и изменение кода.

479. Контрольный список дизайна веб-сайта электронной коммерции: надежный способ

Популярные бренды хорошо осознают тот факт, что использование привлекательного веб-сайта является одним из лучших способов развития и ведения успешного бизнеса электронной коммерции. В дополнение к этому вам также необходимо уделить внимание организации информации, контента и функциональности веб-сайта, чтобы улучшить взаимодействие с пользователем.

480. Что такое обещания в JavaScript? Вводное руководство

Когда дело доходит до JavaScript, считается, что выполненное обещание выполнено, а нарушенное — отклонено. Обещания заменили функции обратного вызова, которые использовались для обработки асинхронных операций.

481. Как выполнять вычисления с помощью Python: памятка по производным [Часть 1]

Эта статья действительно является предвестником крутых вещей, которые вы можете делать с помощью вычислений, таких как кривая преследования, которая используется в ракетах класса «воздух-воздух», и уравнения запуска ракеты.

482. Аннотированные и упрощенные теги Git

Теги — это простой аспект Git, они позволяют вам идентифицировать конкретные версии вашего кода. Вы можете думать о теге как о ветке, которая не меняется. После создания он теряет возможность изменять историю коммитов.

483. Создание TicTacToe с использованием ванильного JavaScript

Я уверен, что вы играли в тиктакто в детстве. В этой статье мы шаг за шагом создадим tictactoe, используя простой JavaScript. Поехали!

484. Что такое nullptr в C++

Ответ на вопрос «Что такое nullptr в C++?» было бы проще простого для опытных глаз C++ & для тех, кто знаком с Modern C++, т.е. ключевым словом. Но nullptr — это больше, чем просто ключевое слово в C++ & чтобы объяснить это, я написал эту статью. Но прежде чем перейти к этому, мы увидим проблемы с NULL & затем мы погрузимся в простую реализацию nullptr & некоторые варианты использования nullptr.

485. Сложный путь изучения Python: почему, как и что

«Если реализацию трудно объяснить, это плохая идея».

486. Когда и как эффективно использовать Bootstrap

На своем пути к тому, чтобы стать разработчиком программного обеспечения, я видел так много внедряемых фреймворков, и одним из них является Bootstrap. Каким бы эффективным он ни был, многие разработчики испытывают к нему сильную неприязнь, в том числе и я. Вот когда и как его использовать.

487. WTF — это API?

Если вы работаете профессионалом, вы, вероятно, слышали, как ваши коллеги говорят об API, веб-сервисах, конечных точках и других странных словах, таких как 200 и 401. Что, черт возьми, это означает и в чем между ними разница?

488. Как создать дружеские отношения на Rails

Инженерия — это разделение проблемы на более мелкие части. А затем решить их с лучшим подходом. Мне как инженеру нравится решать проблемы.

489. Программирование 101: строительные блоки языка программирования

В этой статье будут представлены концепции и темы, общие для всех языков программирования, которые должны знать как новички, так и эксперты!

490. Согласованные пользовательские классы исключений в Python

Необходимость обрабатывать исключения распространена в Python, поэтому приходится определять свои собственные. Тем не менее, я видел конкурирующие способы сделать это в различных проектах. Несоответствие возникает из-за того, что Исключения — это то, что может быть легко создано и расширено, но также и то, что может быть легко создано и использовано в их базовой форме.

491. Скрыть панель навигации в Rails

Недавно я работал над проектом в RoR и понял, что хочу показывать панель навигации и нижний колонтитул на одних страницах и ничего на других. Например, представьте себе страницу регистрации с панелью навигации. Фу, это не только выглядит некрасиво, но и я никогда не видел дизайна, в котором страницы входа/выхода имели панель навигации. Таких дизайнов очень мало, и, на мой взгляд, они не самые лучшие.

492. В чем разница между API и веб-хуками?

API (интерфейс прикладного программирования) обеспечивает двустороннюю связь между программными приложениями, управляемую запросами. Веб-перехватчик – это упрощенный API, обеспечивающий односторонний обмен данными, активируемый событиями.

493. ‘Привет, мир!’ на Golang — как разработать простое веб-приложение на Go

Я собираюсь показать вам, как легко разработать простое веб-приложение на Go, упаковать его в виде облегченного образа Docker и развернуть на Heroku.

494. 10 лучших книг по Java для начинающих и продвинутых разработчиков

Если вы программист Java и вам интересно, что почитать, чтобы улучшить свои знания Java или стать лучшим разработчиком Java, то вы попали по адресу.

495. Быстрее, чем Linux

FTL обычно означает «быстрее света». Теоретическая частица, известная как тахион, которая питает определенные космические корабли во вселенной «Звездного пути», поддерживает сюжет на протяжении десятилетий в нескольких сериалах и фильмах.

496. �� 24 самых крутых расширения VSCode, которые потрясут ваш мир ��

Вы ищете потрясающие расширения VS Code для своего веб-приложения? Тогда вот потрясающая коллекция лучших расширений кода 2020 года.

497. Начало работы с Grandjs

Привет, ребята, надеюсь, у вас все хорошо, сегодня мы познакомимся с Grandjs, многообещающим фреймворком nodejs!

498. Получение данных и их отображение на виджете во Flutter

Получение данных из Интернета — одна из самых распространенных операций, которую должен освоить каждый разработчик. Во Flutter эта операция довольно проста. В этом посте мы узнаем, как обрабатывать данные от выборки до их отображения в наших мобильных приложениях.

499. Разработчик или инженер? Есть ли разница?

Со стола гениального чудака №1:

500. Сравнение функциональности GitHub и Git

Здесь вы узнаете об основных различиях между Git и Github, подробно изучив их функциональность и использование.

501 . Как использовать науку о данных, чтобы найти лучшее место в кинотеатре (часть I)

От самых популярных мест до самого популярного времени просмотра — мы хотели узнать больше о тенденциях кино в Сингапуре . Поэтому мы создали PopcornData — веб-сайт, на котором можно получить представление о тенденциях сингапурского кино – путем сбора данных, поиска интересных идей и их визуализации.

502. Использование Hoverfly для имитации сети

503. Я создал бота для решения Wordle, чтобы мне больше никогда не приходилось этого делать

Я слышал, что все любят Wordle, это круто. Однако мне плевать на это. Я лучше разбираюсь в коде, чем в английском, поэтому я каждый день писал код, который решает эту проблему за меня.

504. Создание простой аутентификации на основе сеанса с использованием Ruby on Rails

Поначалу создание вашей первой системы аутентификации может показаться пугающим. Но, если честно, это очень легко. Прочитав эту статью, вы узнаете, как легко создать аутентификацию на основе сеанса в rails.

505. Go: обработка JSON в MySQL

506. 6 лучших книг по программированию на JavaScript по отзывам

Когда дело доходит до программирования в Интернете, очень немногие языки могут сравниться с огромной популярностью JavaScript. Бесчисленные веб-сайты используют JavaScript для взаимодействия с пользователем, что делает его появление в Интернете почти универсальным. Даже если программисты никогда в жизни не выучат другой язык, они все равно могут извлечь из этого невероятную пользу. И новички, и опытные программисты захотят ознакомиться с этими 6 лучшими книгами по программированию на JavaScript, составленными по отзывам Amazon.

507 . Как установить и настроить Postfix в качестве SMTP-сервера только для отправки в Ubuntu 18.04

Postfix — это агент передачи почты (MTA), приложение, используемое для отправки и получения электронных писем. Его можно настроить так, чтобы его можно было использовать только для отправки электронных писем

508. Как я организовал REST API Node.js

Когда я начал использовать Node.js для создания REST API на стороне сервера, я снова и снова мучился с одним и тем же вопросом:

509. Рефакторинг с помощью тестов в Python: практический пример

Этот пост содержит пошаговый пример сеанса рефакторинга с использованием тестов. При работе с непроверенным или устаревшим кодом рефакторинг опасен, и тесты могут помочь нам сделать это правильно, сводя к минимуму количество ошибок, которые мы вносим, ​​и, возможно, полностью избегая их.

510. E2E-тестирование загрузок Excel с помощью Cypress

Недавно во время работы над проектом мне пришлось создать функционал, в котором пользователи могут скачать файл excel, состоящий из некоторых данных.

511. Сайт социальной сети на Django (Cloudinary + Sendgrid)

Знаете ли вы, что почти каждый человек на нашей планете является пользователем как минимум пяти типов социальных сетей? Только Facebook, самая популярная социальная сеть, насчитывает 2,375 миллиарда пользователей.

512. Не функциональное программирование делает Haskell великим

Этот пост в основном адресован тем, кто не использует Haskell. Haskell часто появляется в hackernews или /r/programming, но содержание обычно проповедует некоторые аспекты функционального программирования, строгих типов и чистоты.

513. Шаблоны проектирования: шаблон Builder в современном C++

В программной инженерии шаблоны креативного проектирования имеют дело с механизмами создания объектов, пытаясь создавать объекты способом, подходящим для ситуации. Базовая или обычная форма создания объекта может привести к проблемам с дизайном или усложнить дизайн. Шаблон проектирования Builder в C++ решает эту конкретную проблему, отделяя построение сложного объекта от его представления.

514. Как использовать обратный прокси-сервер Nginx с помощью Docker Compose

При разработке веб-приложения распространенный метод вызова приложения с локального компьютера — через порты http://localhost:x, что по сути означает, что нам необходимо предоставить несколько портов для доступа к различным модулям приложения. В статье ниже мы рассмотрим метод использования обратного прокси для вызова приложения и преимущества его использования.

515. Основное руководство по балансировке нагрузки серверов Minecraft с помощью Kong Gateway

Мы собираемся изучить переадресацию портов и балансировку нагрузки с помощью Kong Gateway, запустив несколько серверов Minecraft,

516. Как создавать приложения React с нуля: [Часть 1 — Настройка]

Поскольку React в настоящее время является одной из самых востребованных интерфейсных технологий, я решил начать серию курсов, целью которых является показать вам, как создать приложение React js с нуля и до конца.

517. Как работать с несколькими версиями Java в Linux

Java уже довольно давно является основным продуктом для разработчиков. На самом деле Java — один из самых популярных языков программирования на рынке. Одна из причин этого — Android.

518. Вход в систему с распознаванием лиц: новый стандарт безопасности?

Распознавание лиц может помочь вашему бизнесу повысить стандарты безопасности в 10 раз. Мы изучаем бизнес-задачи, которые может решить технология. Тридцать тысяч. Это количество инфракрасных точек, используемых последним современным стандартом для создания карты вашего лица для аутентификации и обеспечения безопасного доступа к вашему устройству. Процесс настолько прост, насколько это возможно — смотрите прямо в камеру, а система входа по лицу сделает все остальное. Сегодня вход в систему с помощью распознавания лиц не ограничивается разблокировкой телефонов, пометкой людей в социальных сетях или сканированием толпы на наличие угроз безопасности. Он проник в игры, продуктовые магазины, аэропорты и платежные платформы. Программное обеспечение для входа в систему с распознаванием лиц и биометрические технологии проникают в создание надежных платформ безопасности — с системой, предназначенной для предотвращения спуфинга с помощью масок или фотографий. Он проникает в службы безопасности и правоохранительные органы, делая реальностью даже безбумажные путешествия.

519. Квантовое машинное обучение с использованием TensorFlow Quantum

520. Это лучшие курсы для изучения новых функций Java от JDK 8 до JDK 13

В Java 8 и Java 13 появилось много полезных функций, таких как лямбда-выражения, Stream API, New Date и Time API, создание неизменяемых списков, var для хранения локальных переменных без типов, String в регистре switch, текстовый блок и многое другое.

521. Контрольный список проверки кода, чтобы сосредоточиться на важных частях

Контрольный список проверки кода, а также четкие правила и рекомендации по проверке кода могут сделать вашу практику проверки кода гораздо более полезной для вашей команды и значительно ускорить проверку кода.

522. ОСТАЛЬНЫЕ из 10 заповедей

Узнайте, как создавать отличные REST API на любом языке, следуя этим 10 основным правилам.

523. Как развернуть приложение с помощью Jenkins, Tomcat Server и PollSCM

В этом руководстве мы собираемся использовать Docker для настройки Jenkins и Tomcat для достижения непрерывной интеграции/непрерывного развертывания.

524. Победите жару с помощью памятки по машинному обучению

Если вы новичок и только начали машинное обучение или даже программист среднего уровня, возможно, вы застряли на том, как решить эту проблему. С чего начать? и куда вы идете отсюда?

525. Как улучшить скорость веб-сайта и рендеринга с помощью оптимизации кода JavaScript

Плохо написанный код наверняка замедлит скорость загрузки вашего сайта. Чтобы повысить производительность веб-сайта, давайте рассмотрим тактику оптимизации кода JavaScript.

526. Разработка средства сокращения URL-адресов в Deno

В этой статье мы собираемся изучить основы Deno, например, как запустить программу и обеспечить безопасность.

527. 8 вещей, которые нужно выучить, чтобы начать работу с Python: руководство для новичков

Разработка программного обеспечения долгое время была одной из самых высокооплачиваемых и востребованных профессий на рынках труда по всему миру. Сейчас, когда 2019 год подходит к концу, а мы стоим на пороге нового года, эта тенденция, похоже, не исчезнет с нами.

528. Личные финансы для инженеров-программистов: чему я научился

Личные финансы — это то, что, к лучшему или к худшему, не является обязательным классом. Вот некоторые основные вещи, которые я хотел бы знать, когда начинал работать с программным обеспечением.

529. 40 лучших веб-сайтов для изучения программирования онлайн прямо сейчас

Если вы новичок в программировании, вам будет приятно узнать, что в Интернете есть множество отличных ресурсов, которые помогут начинающим программистам изучать программирование с нуля. На самом деле, некоторые из лучших программистов в отрасли — это самоучки, не имеющие официальной степени в области компьютерных наук.

530. Почему стоит использовать GoLang [Руководство для новичков]

Go — это язык программирования, разработанный в 2007 году, и этот факт напрямую относит его к категории начинающих. Несмотря на то, что он довольно молодой, по сравнению с другими, он может многое предложить. Нет, не запутайтесь с его очаровательным и глупым талисманом Gopher. Этот язык больше похож на доминирующего инопланетянина, пытающегося управлять вселенной развития!

531. Угловой Против. React: выбор клиентского веб-стека

Веб-разработка — это искусство.

532. Как Redux Observable снова сделал вызовы Ajax отличными

Я создаю свое собственное приложение SaaS, используя библиотеку React для пользовательского интерфейса. Что мне нравится в React, так это то, что его не нужно использовать в SPA (одностраничном приложении).

533. 8 лучших онлайн-курсов по Java для начинающих и опытных программистов

Если вы выпускник компьютерных наук или программист, который хочет изучать Java и ищет замечательные ресурсы, такие как книги, учебные пособия и онлайн-курсы, то вы попали в нужное место.

534. Различия между Blazor WebAssembly и Blazor Server

Если вы в курсе последних событий в .NET за последние пару лет, вы, должно быть, довольно часто слышали модное слово «Blazor». Это революционная среда клиентского пользовательского интерфейса, разработанная могущественной командой Microsoft ASP.NET Expert.

535. Будущее Javascript: типы, наконец, могут появиться в Javascript

Спецификация аннотаций типов указывает, как Javascript в будущем будет реализовывать типы. Давайте посмотрим, как будут работать типы в Javascript.

536. Пройти #100DaysOfCloud бесплатно в Cloud Academy

100-дневное обязательство по обучению при поддержке Cloud Academy. Зарегистрируйтесь, пройдите облачный марафон и получите бесплатное образование.

537. Как проектировать чистые функции

Сегодня я расскажу о том, как спроектировать чистую функцию, и помогу вам понять преимущества чистой функции.

538. Обещания JavaScript с нуля

Чтобы получить максимальную отдачу от этой статьи, убедитесь, что вы знакомы с основами синхронного и асинхронного программирования и, если возможно, с обратными вызовами javascript. не менее 85 %.

539. Разработка поставщика OAuth 2.0 для сервера ресурсов с нуля

Вы когда-нибудь задумывались, как такие платформы, как Google, Facebook, Twitter, GitHub и т. д., обеспечивают функциональность OAuth. Как работает OAuth за кулисами. Что происходит, когда вы нажимаете кнопку «Войти через Google» или «Войти через Facebook». Если да, то эта статья для вас.

540. Как создавать потрясающие интеграционные тесты с помощью Capybara

Советы, которые помогут вам создавать интеграционные тесты с помощью RSpec и Capybara.

541. Как стать мультиязычным программистом в 2021 году

Вы только делаете первый шаг в веб-разработке и хотите научиться программировать? Узнайте о преимуществах изучения нескольких языков программирования.

542. Основное руководство по качеству кода

Точно так же, как контроль качества осуществляется на производстве, тестирование качества кода также проводится при разработке программного обеспечения. При разработке программного обеспечения или при проверке кода, написанного вашей командой, вам необходимо убедиться, что вы проверяете его качество на каждом уровне разработки, прежде чем он станет более сложным. В мире программного обеспечения качество кода может интерпретироваться по-разному в разных отраслях и командах.

543. Разработчики должны перенести свои E2E-тесты на Cypress

Все софтверные компании стремятся производить качественные продукты. Путешествие начинается с продукта, который работает. Корректность программного обеспечения обычно определяется как соответствие программного обеспечения его спецификации. В большинстве случаев формальная проверка невозможна. Поэтому мы обычно навязываем функциональную корректность тестовым покрытием.

544. 10 лучших пакетов и проектов драйверов баз данных Python

Python — известный модульный язык, который импортирует множество полезных операций из своей стандартной библиотеки. Конечно, программировать на Python без его использования невозможно. Он стал отличной альтернативой для многих программистов, поскольку это программа с открытым исходным кодом, разработанная под лицензией OSI. Вы можете бесплатно скачать, установить и запустить его на любом компьютере. Он доступен в различных сборках и поддерживает около 21 операционной системы, что делает его универсальным.

545. 10 лучших советов по кодированию на собеседовании и некоторые вопросы по программированию для получения работы разработчика программного обеспечения в 2020 году

Собеседования по кодированию — очень важная вещь в жизни программиста. что он просто не может уйти от этого. Это первое препятствие, которое им нужно пересекаться, чтобы получить работу разработчика программного обеспечения, которую они желают на протяжении всей своей школьные и студенческие годы.

546. Основы WebGL: 2D- и 3D-графика для Интернета

WebGL (библиотека веб-графики) — это API-интерфейс JavaScript для рендеринга высокопроизводительной интерактивной 3D- и 2D-графики в любом совместимом веб-браузере без использования подключаемых модулей. WebGL делает это, представляя API, полностью соответствующий OpenGL ES 2.0, который можно использовать в элементах HTML5 . Это соответствие позволяет API использовать аппаратное ускорение графики, обеспечиваемое устройством пользователя.

547. Метод, который поможет вам правильно клонировать Netflix с помощью микрофронтендов

Я создал клон Netflix с помощью Piral: платформы с открытым исходным кодом для создания модульных приложений.

548. Подробное введение в сервис-ориентированное программирование

Появляются некоторые принципы того, что можно назвать сервис-ориентированными языками программирования. Принципы являются общими, поэтому они могут помочь при анализе кода даже при работе за пределами этих языков.

549. Тщательный подход к кодированию

Статья посвящена теме структуры процесса кодирования. Он направлен на повышение качества продукции и предоставление информации заинтересованным сторонам.

550. 6 лучших онлайн-курсов по изучению GraphQL для начинающих и опытных разработчиков JavaScript

Привет, ребята, возможно, вы слышали о GraphQL, еще одной интересной технологии. GraphQL набирает большую популярность благодаря своему превосходству над традиционными REST API.

551. Интеллектуальная работа нелинейна. Вот как поддерживать мотивацию разработчиков

На первый взгляд разработка программного обеспечения может показаться не утомительной, но это одна из самых ресурсоемких областей. Разработчики должны сохранять постоянную концентрацию в течение 8-10-часового рабочего дня, творчески подходить к задачам и поддерживать связь со своими коллегами. Даже лучшие таланты устают и выгорают.

552. 22 лучших канала YouTube для изучения программирования

Со стола гениального чудака №1:

553. Нам нужно обсудить разборчивость кода

Бесплодная, изнурительная дискуссия

554. Ваше очень практичное и наполненное ресурсами руководство по преодолению беспокойства, связанного с программированием

Программирование звучит как стрессовая работа для вас? Люди считают, что этого не должно быть, поскольку кажется, что все программисты сидят перед экраном и печатают. Здесь нет ситуаций жизни и смерти, нет огромной ответственности по сравнению с медициной, банковским делом или бухгалтерией. С технической точки зрения, разработка программного обеспечения должна быть одной из самых спокойных работ.

555. Как создать свое первое приложение NestJS

В этой статье я расскажу вам о разработке простого приложения для отдыха в NestJS и дам вам обзор этой платформы.

556. Как научиться модульному тестированию в Java: курсы по JUnit и Mockito

Привет, ребята, сегодня я собираюсь поговорить о JUnit и модульном тестировании, одном из ключевых навыков для любого разработчика программного обеспечения. Возможно, вы уже знаете, что JUnit и Mockito — две самые популярные библиотеки для тестирования приложений Java, и вы найдете их почти в каждом пути к классам приложений Java.

557. Шаблон C++: краткий обзор версии C++ 11/14/17/20

Я знаю, прошло много времени с тех пор, как я в последний раз публиковал в своем блоге что-то подходящее для новичков. Основная причина в том, что большинство моих читателей либо опытные разработчики, либо имеют небольшой опыт работы с C++. Но при программировании на C++ вам нужно совершенно другое мышление, поскольку и C & C++ принадлежит к другой парадигме программирования. И я всегда стараюсь показать им, как лучше работать с C++. В любом случае, я нашел тему, которая является длинной, достаточно сложной (по крайней мере, для меня), удобной для новичков, а также вдохновляющей для опытных людей (если добавить современные жаргоны C++, правила и функции), то есть шаблон C++.

558. Алгоритмы для начинающих: пузырьковая сортировка в JavaScript

Алгоритмы являются фундаментальной частью программного обеспечения и кодирования. Алгоритм — это забавное модное словечко, благодаря которому что-то кажется очень сложным и крутым. Я хотел бы указать, что «алгоритм» буквально просто способ что-то делать; это просто процесс. Тем не менее, алгоритмы и структуры данных являются основной частью программного обеспечения, потому что в конце концов вы просто работаете с данными. Данные должны быть организованы, чтобы они имели смысл, как буквы на этой странице. Atwh и whAt имеют одинаковые буквы, но последнее имеет значение из-за организации.

559. Как получить больше от написания тестов в процессе разработки

TL;DR

560. Golang: руководство для начинающих

В этом руководстве вы узнаете все, что вам нужно знать, чтобы начать использовать Go для создания реальных приложений.

561. Rusty Chains: базовая реализация блокчейна, написанная на чистом ржавчине

Практическое руководство по основам блокчейна, таксономии и Rust.

562. Что не так с Promise.allSettled() и Promise.any() ❓

Недавно я прочитал статью о комбинаторах Promise в блоге v8. Речь идет о двух предстоящих методах в Promise API: Promise.allSettled() и Promise.any(). И я чувствую разочарование. Дизайн этих методов кажется мне несовместимым с текущим API Promise. Позвольте мне поделиться своим мнением ниже.

563. 7 курсов и руководств по Flutter для начинающих по разработке мобильных приложений в 2020 году

Привет, ребята, возможно, вы слышали о флаттер-фреймворке от Google для разработки мобильных приложений. Он позволяет разрабатывать нативные мобильные приложения для приложений Android и iOS с использованием единого исходного кода.

564. Микросервисы заслуживают современных платформ программирования: Java может быть не лучшим вариантом

Микросервисы сегодня очень популярны даже в традиционных корпоративных ИТ-магазинах. Однако часто они реализуются с использованием таких языков, как Java, родившихся в начале 90-х и предназначенных для мира монолитных приложений. Вы помните большие старые серверы приложений?

565. Руководство по PyCharm IDE для начинающих

Я видел, как многие люди задают такие вопросы, как «Какой редактор лучше всего подходит для Python?» Ответ у разных пользователей разный, но чаще всего люди используют PyCharm. Причины следующие:

566. Почему Python — первый язык

Python, Ruby, PHP, Perl — все эти языки имеют схожий возраст и функции, но один из них популярнее других. В этой статье я исследую, почему

567. Используйте Kong Gateway, чтобы остановить кодирование повторяющихся сервисных компонентов

Откройте для себя новый набор инструментов, предназначенный для решения проблем с подключением приложений и API, сохраняя при этом сосредоточенность и удовлетворение потребностей бизнеса.

568. Создание оболочки Linux [Часть III]

Это третья часть руководства по сборке оболочки Linux. Вы можете прочитать первые две части этого руководства по этим ссылкам: часть I, часть II.

569. Как заработать большие деньги разработчику Android

Я собираюсь дать вам несколько полезных советов о том, как улучшить свои навыки и получить работу своей мечты в качестве разработчика приложений для Android.

570. Учитесь программировать на Java? Вот сколько времени это займет

Вы собираетесь начать кодировать и тяготеть к простому и надежному языку программирования, который можно выучить за короткое время и использовать для создания множества приложений и программ? Если да, вы просто не ошибетесь с Java. Но сколько времени нужно, чтобы изучить Java, чтобы стать в ней профессионалом? Чтобы приблизительно оценить время, которое вам может понадобиться, давайте ответим на несколько основных вопросов.

571. Программирование игр и веб-сайтов, которые помогут вам научиться программировать

Самый большой вопрос, который вы должны задать себе, прежде чем читать дальше, это «Что такое кодирование?». Таким образом, кодирование — это процесс присвоения кода чему-либо для классификации или идентификации.

572. Как получить данные о компании с помощью Python и yfinance

Используйте Python for Finance для финансового анализа, например для извлечения цен за прошлые периоды, расчета скользящего среднего и построения графиков ежедневной доходности.

573. Как создать Slack-клон с помощью React, Firebase и CometChat

В этом руководстве мы объединим всю мощь React, Firebase и CometChat, чтобы создать неактивный клон, который поразит вас.

574. Как стать разработчиком Web3

Простое, беспристрастное и исчерпывающее руководство по тому, как стать разработчиком web3.

575. 10 полезных советов и рекомендаций по Python для начинающих

В этом посте мы хотели бы поделиться с вами 10 полезными советами и рекомендациями по Python для начинающих.

576. Инструменты, необходимые для управления показателями вашего стартапа

В течение многих лет я был одержим стартапами и особенно их управлением метриками и KPI. Просто загляните в мой профиль на Medium, и вы все увидите 🙂 Это привело меня к пониманию того, что знание того, какие KPI измерять, — не первая проблема, которую нужно решить, если вы хотите стать стартапом, ориентированным на метрики.

577. Рациональный инженер-программист: руководство по организации рабочего времени

Как инженер-программист, я часто пытаюсь понять, как оптимизировать свою производительность: я хочу выполнять больше работы без необходимости выполнять дополнительную работу.

578. Полное руководство по молниеносной производительности в Ruby on Rails

Ruby on Rails — отличный фреймворк, если вам нужна скорость разработки для вашего проекта или стартапа. Это полезно прямо из коробки и поставляется с множеством закулисной магии, чтобы сделать вашу жизнь проще. Однако с точки зрения производительности он не считается самым быстрым фреймворком. Вы найдете примеры людей и компаний, которые отходят от Rails в пользу чего-то другого. Несмотря на это, есть много компаний, которые преуспели в масштабировании Rails и добились успеха — просто взгляните на Airbnb, Github, Gitlab & Shopify.

579. 20 лучших статей, опубликованных на Hacker Noon в 2020 году

Самыми горячими вещами, о которых можно было написать на Hacker Noon в 2020 году, были — в значительной степени как по количеству отправленных историй, так и по генерируемому трафику — коронавирус; кодирование, программирование, javascript; криптовалюта; Python, блокчейн, стартапы, искусственный интеллект (ИИ) и разработка программного обеспечения.

580. Обработка нескольких строк запроса для шаблонов Jinja2 с помощью Flask

Я писал веб-плеер MP3 с амплитудой js.com на интерфейсе, используя Flask на сервере.

581. Как настроить аутентификацию Devise с помощью Active Storage

Действительно трудно представить приложение без очень безопасного модуля аутентификации, они варьируются от одного к другому, но почти всегда имеют общие компоненты, такие как форма для ввода имени пользователя или электронной почты, их пароль, может быть, некоторая аутентификация в социальных сетях, даже биометрические данные.

582. 24 лучших фрагмента кода ES6 для устранения проблем с JavaScript

Здесь я выбрал некоторые из наиболее полезных фрагментов кода из 30 секунд кода. Это потрясающий ресурс, не стесняйтесь и покажите ему свою любовь.

583. Создание спископодобных объектов в Python — правильный путь

В этом посте мы поговорим о том, как Python любит работать со «спископодобными объектами». Мы углубимся в некоторые особенности Python, которые могут показаться немного странными, и, в конце концов, мы надеемся, научим вас создавать что-то действительно полезное, избегая распространенных ошибок.

584. Как найти собственные состояния: независимое от времени уравнение Шрёдингера

Если вы когда-либо приближались к области квантовой механики, вы слышали о «мистическом» уравнении Шрёдингера. Сегодня мы будем использовать Python для ее решения!

585. Разработка приложения SaaS на Rails 6.1 с горизонтальным сегментированием

Разработка мультитенантного приложения на Rails с горизонтальным сегментированием

586. Обнаженные модели — Часть II: Добытчики

Старые надежные структуры данных и спорный доступ к ним (чтение).

Использование объектов в качестве структур данных — устоявшаяся практика, которая порождает множество проблем, связанных с ремонтопригодностью и развитием программного обеспечения. Он злоупотребляет блестящими концепциями, сформулированными пять десятилетий назад. Во второй части мы рассмотрим доступ для чтения этих объектов.

587. Лучшие ресурсы для инженеров-программистов: как новичку найти работу

Этот короткий пост написан для недавних выпускников и нынешних студентов, которые хотят найти работу инженера-программиста в технической отрасли, и содержит список ресурсов, которые им помогут.

588. Лучший совет о том, как научиться быстрее и стать профессионалом в программировании

Посмотрим правде в глаза: люди по своей природе нетерпеливы и, скорее всего, хотят, чтобы в их жизни все происходило быстрее. Я бы применил то же самое к изучающим код. Студенты, приступая к изучению программирования, в первую очередь задаются вопросом, как ускорить обучение и как можно быстрее сделать карьеру программиста.

589. Оптимизируйте длину CSS с помощью CSS-переменных

Доходили ли вы когда-нибудь до того, что вам приходилось писать много CSS, и вы терялись в своем собственном коде? Если вы похожи на меня, иногда вам нужно хранить шестнадцатеричные коды цветов или размера текста в месте, к которому вы можете получить доступ и повторно использовать. В этом посте я поделюсь знаниями о том, как оптимизировать ваш CSS с помощью CSS-переменных. Переменные CSS — это значения, которые мы определяем для повторного использования в документе CSS. Переменные CSS, также называемые пользовательскими свойствами, задаются в одном месте и на них ссылаются во многих местах, как вы устанавливаете переменную и ссылаетесь на нее в других языках программирования.

590. Шаблон Variadic в C++: реализация простого кортежа

Начиная с C++11, std::tuple представляет собой невероятное расширение для Modern C++, которое предлагает коллекцию разнородных значений фиксированного размера. К сожалению, кортежи могут быть несколько сомнительными в управлении обычным способом. Но выпущенный впоследствии стандарт C++ представил несколько функций & помощники, которые значительно сокращают необходимый шаблон. Итак, в этой статье я объясню вариативный шаблон в C++ с помощью простого кортежа выполнение. А также проведет вас через сложную часть кортежа, т.е. цикл через элемент кортежа. Несмотря на то, что я скрывал шаблон с переменным числом аргументов в своей предыдущей статье, т. е. Шаблон C++: быстрый взгляд на обновленную версию. Итак, мое внимание здесь будет сосредоточено на сочетании вариативного шаблона и amp; реализация кортежа с более современными датчиками C++.

591. Фоновое сканирование BLE в режиме DOZE на устройствах Android

Всем привет! Мы команда Navigine. В течение 8 лет мы предоставляем интегрированные мобильные технологии позиционирования, которые позволяют использовать передовые решения для внутренней навигации и приближения. Сегодня мы решили открыть двери нашей технологии и рассказать о том, как сканировать BLE-устройства, когда приложение Android убито и находится в фоновом режиме.

592. Изучите Java самостоятельно: с чего начать

Все языки являются «инструментами» для решения многочисленных проблем. Однако есть вариант, который можно считать лучшим выбором — Java (хотя некоторые считают, что это Python).

593. Как использовать семантику HTML как герой

Контент

594. Функциональное тестирование вашего бэкэнда в Go

Для Terrastruct, который на данный момент имеет чуть более 50 тысяч строк кода, я написал только функциональные сквозные тесты. В этом сообщении блога описывается успешная установка, для достижения которой потребовалось некоторое количество итераций, и я хотел бы, чтобы она существовала, когда я начинал с серверной части Go API.

595. Младший разработчик объясняет оценку задач

Глубокое погружение в планирование итераций и прогнозирование того, сколько времени это займет

596. Использование tmux для улучшения работы с терминалом

Узнайте, как повысить продуктивность и быстрее переключаться между окнами и проектами с помощью темы Zsh, Tmux и Dracula.

597. Введение в CSS-модули React

CSS-модули помогают создавать независимые и настраиваемые каскадные таблицы стилей для любого файла .js, отображающего HTML в вашем приложении React.

598. Создание сквозной модели распознавания речи в PyTorch с помощью AssemblyAI

Этот пост был написан Майклом Нгуеном, инженером-исследователем машинного обучения в AssemblyAI. AssemblyAI использует Comet для регистрации, визуализации и понимания конвейера разработки моделей.

599. 13 бесплатных/недорогих сайтов для самообразования в программировании

Хотя мы по-прежнему говорим о программировании как об отдельной карьере, доминирование технологий в нашей жизни ясно дает понять, что программирование — это гораздо больше, чем карьера. На мой взгляд, информатика — это больше, чем специальность в колледже или высокооплачиваемая работа; это навык, необходимый для процветания в современной экономике.

600. С этим советом вы успешно проведете свой первый год работы младшим разработчиком

Вы младший разработчик и начинаете карьеру в области разработки программного обеспечения?

601. Почему пожилые люди должны учиться программировать

Пенсионеры — учитесь программировать! Будучи стимулирующим ум занятием в свободное время, изучение программирования имеет множество преимуществ для здоровья и социального благополучия пожилых людей.

602. 39 инструментов веб-разработчика, которые вы захотите взять с собой в 2021 году

В этой статье мы рассмотрим 39 лучших инструментов для разработки программного обеспечения и программирования, от веб-разработки и интерактивной разработки до быстрой разработки приложений.

603. Рекомендации по повышению производительности серверной части: запуск и мониторинг Express.js в рабочей среде

Какую самую важную функцию может иметь приложение Express.js? Может быть, использовать сокеты для чатов в реальном времени или GraphQL вместо REST API? Давай, скажи мне. Какая самая удивительная, привлекательная и разрекламированная функция есть в вашем приложении Express.js?

604. Создание простого бизнес-каталога с помощью CodeIgniter и MySQL

Пошаговое руководство по созданию простого веб-каталога с помощью CodeIgniter и MySQL. Код доступен в этом репозитории github.

605. Руководство по тестированию компонентов React: Jest и RTL

В этом руководстве вы познакомитесь с основами создания тестов для компонентов React с помощью Jest и библиотеки тестирования React.

606. Гомоморфное шифрование — для веб-приложений �� (часть 2)

Если вы пропустили предыдущую статью (часть 1), я дал очень краткое введение в гомоморфное шифрование (HE), рассказал о библиотеке Microsoft SEAL и обрисовал некоторые болевые точки при обучении ее использованию.

607. Как мы локализовали наш веб-сайт на 9 языков менее чем за неделю — и вы можете это сделать

Хотите научиться локализовать сайт? Не смотрите дальше. В этом посте я делюсь пошаговым руководством по локализации вашего веб-сайта менее чем за неделю.

608. Как обрабатывать формы в Selenium с помощью Java

Узнайте, как получить доступ к формам в Selenium WebDriver для автоматизированного тестирования вашего веб-приложения в браузере и обеспечения совместимости между браузерами.

609. Руководство по развертыванию игр Phaser 3 Webpack на Heroku

Мне было трудно понять, как развернуть игру Phaser 3 на Heroku. Вот почему я собираюсь показать вам, как создать совершенно новый проект node.js, интегрировать его с игровым движком Webpack и Phaser 3, используя Express в качестве веб-сервера, и развернуть его на Heroku, чтобы мы могли увидеть его вживую.

610. React-Redux Flow: подробное руководство

Состояние. Это одно слово, стоящее за существованием Redux в среде React. Но постойте, каково состояние приложения и почему оно имеет значение в одностраничных приложениях (SPA). О, одностраничные приложения? Что это тоже? Давайте немного вернемся к этому и будем делать это по одному шагу за раз.

611. Создание новой темы Gatsby с помощью Typescript, MDX и Theme-UI

Темы Gatsby предоставляют мощный способ совместного использования определенного набора конфигураций на нескольких сайтах Gatsby. Функции, встроенные в вашу тему Gatsby, будут абстрагированы от вашего сайта и упакованы в виде зависимостей, обеспечивая эффективный способ разработки подобных сайтов Gatsby.

612. Окончание Leetcode

Leetcode.com — это веб-сайт, на котором люди — в основном инженеры-программисты — практикуют свои навыки программирования. Он очень похож на такие сайты, как HackerRank & Topcoder, который оценит ваш код, написанный для решения конкретной проблемы, по сравнению с кодом, отправленным другими пользователями.

613. Программное обеспечение для предприятий — самое сложное в написании ПО

Существует мнение, что корпоративное программное обеспечение — это просто. Мыслительный процесс выглядит примерно так: «Почему сложение чисел и подготовка отчетов могут быть такими же сложными, как программирование распознавания изображений или написание программного обеспечения для управления атомными электростанциями?»

614. Программирование для начинающих: руководство по языкам, курсам и платформам

Разработка программного обеспечения — одна из самых популярных профессий сегодня со средней зарплатой 59 568 долларов в год. Поскольку спрос на перспективных специалистов по кодированию никуда не денется, многие люди стремятся освоить новые навыки, чтобы пополнить ряды разработчиков. Но даже если вы не планируете становиться штатным разработчиком, получение опыта программирования откроет больше возможностей и значительно поможет вашей будущей карьере.

615. 7 лучших курсов Java EE для начинающих

Здравствуйте, ребята! Если вы разработчик Java или кто-то, кто хочет изучить Java EE для веб-разработки и ищет курсы, чтобы начать свое обучение, то вы попали в нужное место.

616. Как использовать else if в JavaScript с примерами

Синтаксис if else, else-if, вложенных if и логических операторов, таких как AND OR и NOT в Javascript. Оператор Switch можно использовать как альтернативу оператору If.

617. Как создать пользовательский портал на Airtable с помощью Sync Inc и React

В этом руководстве вы узнаете, как создать масштабируемый, безопасный и гибкий клиентский портал на Airtable с помощью Sync Inc, Cotter и Next.js.

618. Изучение основ C# и .Net Framework

Мы всегда говорим об основных языках программирования в такой степени, что Python, Java, SQL и т. д. — это все, что мы видим в основном. Есть много других динамических фреймворков и языков, подобных нашей сегодняшней теме; C Sharp или C#, которые играют неотъемлемую роль в глобальных сообществах разработчиков программного обеспечения. Давайте подробно рассмотрим основы C#, а также инфраструктуру .Net, чтобы лучше понять эксклюзивность, функции и их преимущества.

619. Визуализация астероидов в Python с помощью Bokeh и API NASA

Запрос GET к веб-службе Astronomy Picture of the Day (APOD) от 18 сентября 2020 г. вернул приведенную выше фотографию спиральной галактики Arp 78. APOD — один из многих API-интерфейсов, доступных через открытые API-интерфейсы NASA. Как и в случае с APOD, некоторые из них включают в себя изображения, такие как API-интерфейс Earth Polychromatic Imaging Camera (EPIC), который возвращает изображения, подобные этому:

620. Deno�� — это угроза для Node?

Deno 1.0 запускается 13 мая 2020 года Райаном Далем — первоначальным создателем Node.js

621. Как создать простой клиент API с помощью ZIO и Http4s

Обсуждая с другом-бразильцем ситуацию в нашей стране, мы поняли, насколько сложно найти информацию о государственных расходах, а когда она доступна, как трудно об этом рассуждать. Объединив наши усилия, мы решили изучить некоторые данные, предоставленные правительством Бразилии, чтобы упростить визуализацию и понимание того, как использовались государственные ресурсы.

622. Более 7 бесплатных руководств, курсов и курсов по Git для программистов любого уровня

Эта статья стала возможной благодаря Udemy.

623. Аннотации в Java: все, что вы хотели знать

Аннотации представляют собой форму метаданных. Он предоставляет данные о программе, которая не является частью самой программы. Аннотации не имеют прямого влияния на работу кода, который они аннотируют. Аннотации были впервые представлены в языке Java в третьем издании Спецификации языка Java и впервые реализованы в Java 5.

624. Как создать мощную страницу статуса с отличной производительностью и дизайном

В этом руководстве показано, как легкая и производительная база данных временных рядов в сочетании с проверками состояния в очереди и простым пользовательским интерфейсом лучше всего подходит для надежных приложений.

625. Как перестать писать непроверяемый код

Каждый разработчик знает, что тестируемый код может облегчить жизнь. О юнит-тестировании написано много книг и статей. Особое внимание уделено разработке через тестирование (TDD) как лучшему процессу разработки высокотехнологичных продуктов.

626. 10 основных вопросов по Javascript

JavaScript — это клиентский язык программирования. Он используется более чем на 90% веб-сайтов в мире. Это один из самых используемых языков программирования в мире. Итак, сегодня мы поговорим о 10 самых задавали вопросы о JavaScript.

627. Golang: декларативная валидация похожа на Ruby on Rails

Использование декларативной проверки в Golang аналогично проверке Active Record.

Спасибо, что ознакомились с 627 самыми читаемыми статьями о программировании на HackerNoon.

Посетите /Learn Repo, чтобы найти самые читаемые истории о любой технологии.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *