Блог

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Языки программирования 2019

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

Мобильные языки

Уже практически свершившийся факт, что на мобильном рынке происходит смена языков программирования. Можно уже с большой долей уверенности говорить о том, что Objective-C мертв. Apple переводит все на Swift и этот язык уже окончательно стал основным на iOS.

Веб программирование – слишком сложно

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

Лет 20 назад сайты были небольшими из нескольких страниц и для этого достаточно было только HTML. С ростом размеров понадобились более сложные вещи и стали появляться CSS и серьезный рост показала разработка бакэнда. 

Лет 10 назад Web начал отбирать рынок у десктопных приложениях и сильное развитие получает JavaScript и различные фреймворки. А тут еще и Apple забивает гвоздь в крышку гроба Adobe Flash, поэтому JS и HTML5 становятся центральными технологиями. 

Где же следующий шаг в развитии Swift?

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

Когда Microsoft представили миру C#, то не смотря на отсутствие поддержки со стороны самого гиганта, нашлись энтузиасты, которые начали переносить его на другие платформы и появился Mono. Это говорит о том, что C# действительно великолепный язык и его люди готовы переносить самостоятельно. 

О блоге

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

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

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

Пишите мне


Я в социальных сетях
Facebook Telegram Youtube
Програмысли Instagram Твитер