среда, 17 января 2018 г.

Создан для людей, а не для прибыли

Устанавливал новый Firefox и зацепила фраза.
А для чего создаем мы? Для людей или для прибыли?

Ценность знаний программиста

Как fullstack разработчику мне приходится очень много читать литературы по специальности. Но в последнее время я стал замечать, что с моими знаниями стали происходить странные вещи. Они быстро устаревают! Копнем глубже.

Условно знания программиста можно разделить на две большие категории:
  • Фундаментальные знания
  • Знания технологий
Фундаментальные знания
Это понимание ООП, паттернов проектирования, принципов и метапринципов разработки ПО. Эти знания по большей части устойчивы к устареванию. Они лежат в основе вашего чутья в разработке - что такое хорошо и что такое плохо. По сути они для вас как луч света в темном царстве технологий. Какой бы язык, фреймворк или технологию вы не взяли в руки - интуитивно вы отличите говнокод от конфетки. Увы, фундаментальные знания накапливаются медленно - только с опытом и на практике. Не получится их приобрести сходу просто, например, прочитав книгу банды четырех про паттерны проектирования. В одно ухо влетит в другое вылетит со свистом как из турбины самолета. Проверено на себе. Можно читать правильные книги хоть до ноликов и единичек в глазах. Толка не будет. Но зато в каком-то смысле ваши фундаментальные знания антихрупки. К сожалению одних фундаментальных знаний для разработки ПО будет маловато. Нужно знать конкретные технологии.

Знания технологий
Это понимание технологий, с которыми вы активно работаете в данный момент. Знания технологий недолговечны. Перестав работать с какой-то технологий вы постепенно начинаете забывать нюансы. В лучшем случае эти нюансы осядут в долговременной памяти. Тогда если вы снова с этим столкнетесь даже через год, то быстро восстановите в памяти всю картину. В худшем случае знания через некоторое время улетучатся совсем. При необходимости в будущем с ними работать придется вникать повторно.
Знания о разных техологиях плохо сосуществуют друг с другом одновременно. Долго пишешь sql запросы - постепенно вылетают знания по JQuery. Разработал asp.net core приложение - забыл winforms и webforms. Охватить и запомнить все не получится.
В последнее время знания технологий стали довольно хрупкими. Они быстро появляются и быстро умирают. В книге Талеба можно провести аналогию с одной закономерностью. Если технология уже долго живет, как например SQL c 70-х годов прошлого века, то с высокой долей вероятностью такой долгожитель продолжит свое существование. В ближайшее десятилетие наверняка. А какой-нибудь хайповый JavaScript фреймворк вылетит в трубу в ближайшие пару лет вместе с потраченным на его изучение вашим временем. Поэтому надо очень вдумчиво выбирать во что инвестировать свое нерезиновое время. В свое время я не стал абсолютно ничего читать про silverlight. Не потратил ни минуты свое времени. И не зря.

Книги
Ценность книг для меня со временем стала падать. С самого начала своей карьеры я читал взахлеб. Про проектирование, дизайн, тестирование, юзабилити, паттерны, технологии с которыми непосредственно работал. Увы, без постоянной практики многие знания вылетали. А практиковать все и вся не было возможности.
Конечно ценность ряда книг неоспорима. Например "Совершенный код" Макконела. Но будучи новичком вы конечно сможете похвалиться такой прочитанной книгой, но суть не ухватите. Это тоже самое, что в школе писать сочинение про "Войну и мир".
Когда я изучал ASP.NET Webforms, то прочитал всего Дино Эспозито. Мне хотелось хорошо разобраться в вопросе. Понять фундаментальные основы платформы. Да и просто приятно разрабатывать с пониманием вещей. Про ASP.NET Core книги я уже не читаю. Просто нет смысла. Обновления выходят с такой скоростью, что читать фундаментально уже не хватит времени. 

Stackoverflow
Быстрое устаревание знаний хорошо заметно по ответам на нашем любимом stackoverflow. Еще буквально несколько лет назад в поисках решения достаточно было посмотреть первый правильный ответ. В большинстве случаев он вполне устраивал. Сейчас такой подход уже не работает. Правильный ответ чаще всего уже морально устарел:
  • Может быть он еще подходит, но с новыми возможностями языка оно будет короче и понятнее. 
  • Может актуален только для старой версии какого-нибудь фреймворка. 
В итоге надо пролистывать список ответов до конца. Вчитываться в каждый и чутьем понимать какой ответ теперь правильный для вашей конкретной ситуации.
Забавно читать вопросы по asp.net core. Там обычно по факту несколько правильных ответов с кучей коментов, аля в версии 1.0 это походит, в 1.1 не работает, а в 2.0 вообще api изменился и там надо вместо молотка дрель брать в руки.


Какой вывод я хотел сделать из написанного? Надо беречь свое время. Оно скоротечно. Вдумчиво выбирать во что его инвестировать. Ценность ряда программистских знаний аналогична по сроку годности скорее йогурту чем тушенке. А потраченное время вам никто не вернет.

вторник, 16 января 2018 г.

Перезагрузка asp.net core приложения в azure

После обновления через ftp конфигурационного файла (.exe.config) веб-приложения, azure не подхватывает изменения сразу. Веб-приложение работает со старой конфигурацией. Что делать? Куда нажимать?

Помог старый трюк! В корне веб-приложения лежит web.config. Необходимо внести в него любое изменение. Я обычно добавляю в конце файла пробел. Сохраняю. Это автоматически приводит к перезапуску пула приложений. Новые конфигурационные настройки подхватываются.

понедельник, 15 января 2018 г.

ASP.NET Core документация

Изучаю документацию по ASP.NET Core. И оказалось удивительно удобно читать ее с телефона. Экрана 5.5 дюйма вполне хватает. Примеры кода имеют горизонтальную прокрутку. Все содержимое удобно ресайзится и в вертикальном и в горизонтальном положении телефона. В самом верху сайта есть выпадающий список с выбором темы. Для сохранения зрения выбираем Dark. При кромешной тьме вполне комфортно для глаз при минимальной яркости экрана.

Инфляция 4%

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


Наверное они стали догадываться что инфляция "чуть" выше заявленных 4% ))

вторник, 9 января 2018 г.

Выбор и удачный момент для покупки телефона

Зачем?
Долго я не хотел менять мобильный телефон! Моя Nokia Lumia 630 исправно работала и кушать не просила. Благодаря аккуратности телефон был не бит не крашен. И впервые к замене меня подтолкнула не аппаратная часть, а программная! 

Почему?
Все предыдущие (кнопочные) телефоны требовали замены, когда у них переставали нажиматься кнопочки или что-то отваливалось. А тут абсолютно рабочий телефон. Да, камера стала по современным мерка слабовата. Фронтальной камеры не было, а хотелось почаще селфячиться с сыном и пользоваться видеозвонками не только с компьютера. Но вот программная составляющая начала сильно устаревать. Майкрософт отказалась от развития и поддержки Windows Phone 8. И продала свои права на мобилы китайцам. Последним гвоздем стало прекращение поддержки скайпа на платформе Windows Phone 8.1. Просто бросили. Ну и в принципе набор доступных приложений был гораздно меньше чем для того же андроида.

Муки выбора


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

Анализ моделей и простейшее предсказание указало мне на удачный момент для покупки! В самом конце года у них вышла новая модель Honor 7x. Естественно цена на нее как за новье была завышена. Брать неразумно. Honor 7x пришел на смену Honor 6x. На него то я и нацелился. Логика подсказывала, что с выходом новой модели - на старую должны дать скидки. Увы! На официальном сайте дали ожидаемые новогодние скидки, но не на Honor 6x, а на какие-то другие модели с диагональю <5.5 дюймов. А для моих длинных пальцев нужен был только 5.5+ дисплей )) 

Благоприятный момент
Интуиция подсказывала, что с появлением 7x скидки будут! Главное не дергаться. Сидеть в засаде и ждать удачного момента! И он настал! Ровно за неделю до нового года днс скинул две тысячи на Honor 6x Premium. 



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

Итого
Купил! Пока доволен как слон! По сравнению со старенькой Nokia Lumia 630 - небо и земля. Все таки за 4 года прогресс в смартфонах сильно шагнул вперед. Мое программистское любопытсво на некоторое время будет удоволетворено новым для меня андроидом ))

понедельник, 1 января 2018 г.

Крутой муж?

А вы знаете кто такой "крутой муж"?

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

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

Подумал про себя и пришел к нескольким выводам:

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

А ты крутой муж?

Новогоднее телевидение и стабильность

Вот мы все время жалуемся, что у нас нет стабильности! Инфляция (которую вроде "победили"), цены постоянно растут, погода никак не устаканится. Посмотрел новогоднюю телепередачу и понял. Вот где стабильность! 

Новогоднее поздравление хорошо всем знакомого президента. Не нужно привыкать к новому лицу. Cколько я себя более или менее осознанно помню. А потом песни пляски - ба! знакомые все лица! Они как будто бы и не стареют. Только помню в детстве смотрел на них - они пели как-то с огоньком. Энергия в них была. А теперь такие все ухоженные холуи. Мужчины - сытые коты, женщины - львицы на пенсии. Поют - как будто одолжение делают. Конвейер однако. Но стабильность таки есть!

Наиболее эффективное программирование на C# - Билл Вагнер (2-е издание)

Закончил чтение очередной книги Билла Вагнера - Наиболее эффективное программирование на C#. 50 способов улучшения кода (2-е издани...