Блог

Web разработка с помощью .NET Core (Часть 1) бесплатный курс

Наконец наступил этот момент. Хотя я этот видеокурс закачал на youtube в пятницу вечером, публичным делаю только сейчас. Просто я его закачал перед сном и сразу стало доступно только видео с самым ужасным качеством, хотя я закачал его в 4k качестве. Логично, ведь ютюбу понадобилось немного времени на то, чтобы обработать все. 

В субботу утром я проверил и мой первый бесплатный видеокурс по Web разработки на .NET Core стал уже доступен во всех возможных вариантах качества. 

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

Работа веб программистом – стек технологий

Этот вопрос задавали на youtube раза три (возможно даже один и тот же человек, я это не отслеживаю) и когда я начал писать заметку, то понял, мне нечего рассказать. Я стал чаще писать сначала заметку, а потом записываю видео. Пока пишу заметку, я как бы прикидываю, о чем я буду говорить в видео. В итоге текстовая и youtube версии получаются очень похожими. 

После клика я попал в компанию, которая делает что-то похожее на 1C кадры для рынка США и Канады. Это одностраничное приложение, в котором очень много сделано на стороне клиента, поэтому здесь очень даже серьезный упор на JavaScript. 

А вы знали, что в инструментах по поиску ошибок на Java тоже есть ошибки?

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

По традиции, автор статьи приводит примеры найденных ошибок с помощью PVS-Studio. Предвидя вопросы, сможет ли анализатор найти что-то в таких проектах как IntelliJ IDEA, SpotBugs и других известных инструментах по поиску ошибок в Java коде, в статье предлагается рассмотреть примеры ошибок разного типа из этих проектов.

Например, интересная опечатка из IntelliJ IDEA:

Зачем знать алгоритмы сортировки

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

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

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

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

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

Как стать программистом?

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

У меня нет профессионального образования в ИТ, практически все приходилось изучать самому. Единственное, что я заканчивал – небольшие курсы. В начале 2000-х годов это были официальные курсы по программированию и администрированию (два отдельных курса по недели на каждый) от Майкрософт, которые проходили на территории МГТУ им Баумана. К самому МГТУ они мало имеют дела, просто проходили на его территории, это все же официальные Майкрософт курсы. 

Язык PHP ужасен и его не нужно учить

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

Обфускация и усложнение кода

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

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

Фильтрация на стороне клиента

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

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

Может показаться, что нагрузка на сеть – это фигня, ведь 10 лишних строк из базы – это пару килобайт. При нынешних гигабитных сетях это капля в море. А если это нагруженный сайт с 1000 посетителей в минуту? Это уже 10 мегабайт абсолютно бесполезных данных в минуту. А если таких запросов будет еще десяток – это еще больше мусора на сеть.

Самый лучший язык программирования

В интернете с постоянной регулярностью появляются разговоры на тему того, какой язык программирования самый лучший. Лично я не понимаю, зачем он нужен – самый лучший язык программирования? 

У меня лично нет самого лучшего, я с удовольствием использую C#, PHP, Swift и даже старый классический С или С++. Хотя последний уже очень давно не использовал (имею ввиду С++). Если классический С еще использую на Arduino, то C++ как-то негде использовать. Последний раз я на C++ писал, когда еще было время в свободное время тратить время на графику и я его использовал с DirectX.

Я даже неплохо относился к Objective-C. Этот язык я считаю самым ужасным из всего, что я использовал, потому что читаемость кода не очень хорошая. Я сейчас взглянул на статистику на stackoverflow и Objective-C заслуженно входит в 10 самых ужасных языков, занимая в нем 9-е место. Хуже три вариации VB (VB 6, VB .NET и VBA), Cobol, Perl, Matlab, Assembly, CoffeeScript. Читаемость и возможности языка слишком слабые.

5 ошибок начинающих программистов

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

Сразу бросаться делать сложное

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

О блоге

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

Обратная связь

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

Пишите мне