Pull to refresh
0
0
Алексей Кузнецов @NoofSaeidh

Разработчик

Send message

Мой опыт собеседования в Amazon

Reading time6 min
Views62K

О чём эта статья

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

Это история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

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

Начало, предложение от Amazon

В один прекрасный день 6 сентября, мне пришел такой сообщение в Линкедин.

Читать далее
Total votes 93: ↑90 and ↓3+87
Comments177

Поговорим про градиенты в Unity

Reading time6 min
Views14K

Всём привет. Меня зовут Григорий Дядиченко. Я в Unity разработке около 7 лет, и за это время повидал многое. Одна из основных проблем, которая встречается, когда забираешь у неопытных ребят проект - градиенты в интерфейсах. В целом ошибки в разработке интерфейсов не редкость. Вроде того же неумения пользоваться найн слайсом, атласами, понимания батчинга. Но градиенты стоят немного особняком, так как они либо раздувают вес билда до невообразимых размеров, либо рисуются в интерфейсе со стрёмными артефактами компрессии. Давайте обсудим почему так происходит, и что с этим можно сделать, как вариант решения. Кому данная тема интересна - добро пожаловать под кат.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments0

ImportExportDataSql — бесплатный конвертер данных MSSQL

Reading time4 min
Views17K

Введение


Очень часто возникает задача конвертации данных из одной БД в другую, из внешнего файла разного формата в БД и наоборот. При этом типы данных внутри БД могут быть не только текстовые, но и бинарные (binary или varbinary). Бинарные и текстовые данные, как известно, в SQL Server Management Studio обрезаются и не выводятся полностью. В связи с этими недостатками пришлось написать свое приложение для конвертации данных в/из MSSQL на языке C# (.NET Framework 4.0). Приложение называется ImportExportDataSql и изначально он создавался именно для конвертации из бинарных полей БД в файлы, но потом функционал расширялся. Приложение портативное, без рекламы и не требует доступа в Интернет.

Возможности приложения


  1. Результат SQL-запроса выборки данных генерит данные в SQL-формате с проверкой наличия записи в таблице по указанному пользователем условию WHERE
  2. Несколько результатов SQL-запросов объединяются в один файл, если пользователь укажет в разных задачах одинаковое имя выходного файла
  3. Все настройки хранятся в XML файле
  4. Возможность запуска из консоли
  5. Быстрая загрузка/выгрузка в БД при работе с CSV
  6. Возможность загружать Excel-файлы в двух режимах
  7. Выполняются только отмеченные задачи
  8. Задачи, выполненные с ошибками подсвечиваются красным цветом, а без ошибок — зеленым. Сообщение об ошибке при этом выводится не только в лог, но и в виде всплывающей подсказки напротив строки, где возникла ошибка

Интерфейс приложения


При запуске приложения необходимо соединиться с БД.



После успешного соединения с БД отображается список задач.


Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments25

Логические поля в базах данных, есть ли противоядие

Reading time9 min
Views15K

Часто в таблицах содержится большое количество логических полей, проиндексировать все из них нет возможности, да и эффективность такой индексации низка. Тем не менее, для работы с произвольными логическими выражениями в SQL пригоден механизм многомерной индексации о чем и пойдёт речь под катом.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments28

Делаем один проект плагина с компиляцией под разные версии Revit/AutoCAD

Reading time13 min
Views10K


При разработке плагинов для САПР приложений (в моем случае это AutoCAD, Revit и Renga) со временем появляется одна проблема – выходят новые версии программ, меняется их API и нужно делать новые версии плагинов.


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


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

Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments1

Переключатели функциональности (feature toggles): виды, преимущества и работа с ними в .NET

Reading time33 min
Views13K

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

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

В данном материале собрана основная информация о переключателях функциональности в контексте разработки на платформе .NET. В первой части содержатся общие сведения о переключателях; они достаточно независимы от конкретной реализации и могут оказаться полезными для специалистов, работающих с самыми разными платформами. Во второй части рассматриваются конкретные современные инструменты, облегчающие использование переключателей именно при разработке для .NET.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments9

Dynamic в C#: рецепты использования

Reading time4 min
Views13K
Это заключительная часть цикла про Dynamic Language Runtime. Предыдущие статьи:

  1. Подробно о dynamic: подковерные игры компилятора, утечка памяти, нюансы производительности. В этой статье подробно рассматривается кэш DLR и важные для разработчика моменты, с ним связанные.
  2. Грокаем DLR. Общий обзор технологии, препарирование DynamicMetaObject и небольшая инструкция о том, как создать собственный динамический класс.

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


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments10

F#6: Кортежи

Reading time4 min
Views2.5K
Итак, наше путешествие в F # продолжается. Следующая статья будет посвящена типам F #, которые могут иметь или не иметь стандартные эквиваленты .NET. Этот пост о кортежах.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

Как я провел лето с C# 8

Reading time5 min
Views10K

В недавнем выпуске подкаста DotNet & More Blazor, NetCore 3.0 Preview, C#8 и не только мы лишь вскользь упомянули такую животрепещущую тему, как C#8. Рассказ об опыте работы с C# 8 был недостаточно большим, что-бы посвящать ему отдельный выпуск, так что было решено поделиться им средствами эпистолярного жанра.


В данной статье я бы хотел рассказать о своем опыте использования C#8 на продакшене в течение 4 месяцев. Ниже Вы сможете найти ответы на следующие вопросы:


  • Как "пишется" на новом C#
  • Какие возможности оказались действительно полезными
  • Что разочаровало
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments29

Пять перспективных языков программирования со светлым будущим (3 года спустя)

Reading time8 min
Views71K

КДПВ


В 2016-м году я опубликовал перевод статьи про 5 перспективных языков программирования, в которой прогнозировался их рост в ближайшие 2-3 года.
Зачастую прогнозы так и остаются прогнозами, без последующего анализа. Но я решил, что это непорядок. И посколько 3 года уже пролетели, пора подвести промежуточные итоги и посмотреть, что произошло с этими языками за это время.


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


про эшелоны

В исходной статье языки программирования условно делятся на 3 эшелона по популярности.
Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, C# и т.д.
Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Большинство языков в первом эшелоне прочно укоренились на своих позициях. Поэтому выпадение языка с лидирующих позиций занимает ощутимое время, а для языка второго эшелона очень трудно пробиться в первый.
К третьему эшелону относятся непопулярные языки, а также относительно новые перспективные языки (о которых пойдёт речь), которые только начинают свой путь наверх. Некоторые языки пребывают в третьем эшелоне на протяжении многих лет, не получая популярности, в то время как другие врываются на сцену всего за пару лет.

Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments154

12 советов по улучшению производительности JavaScript-приложений

Reading time8 min
Views19K
Производительность — это один из важнейших вопросов, встающих перед разработчиками веб-страниц или веб-приложений. Никто не будет рад «падающему» от чрезмерной нагрузки приложению, или странице, которая загружается целую вечность. Пользователи веб-сайтов не готовы слишком долго ждать их загрузки или приведения их страниц в рабочее состояние. Согласно данным Kissmetrics, 47% посетителей ожидают, что веб-сайт загрузится менее чем за 2 секунды. 40% посетителей покинут сайт в том случае, если его загрузка займёт более 3 секунд.



Автор материала, перевод которого мы сегодня публикуем, говорит, что, если учитывать вышеприведённые цифры, становится ясно, что производительность — это то, о чём всегда стоит помнить веб-разработчикам. Здесь будут приведены 12 рекомендаций по улучшению производительности JS-проектов.
Читать дальше →
Total votes 37: ↑29 and ↓8+21
Comments13

Nullable Reference типы в C# 8.0 и статический анализ

Reading time13 min
Views23K

Picture 9


Не секрет, что Microsoft достаточно давно работает над выпуском восьмой версии C#. В недавно состоявшемся релизе Visual Studio 2019 новая версия языка (C# 8.0) уже доступна, но пока ещё только в качестве beta релиза. В планах этой новой версии есть несколько возможностей, реализация которых может показаться не совсем очевидной, или точнее, не совсем ожидаемой. Одним из таких нововведений стала возможность использования Nullable Reference типов. Заявленным смыслом данного нововведения является борьба с Null Reference Exception'ами (NRE).
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments8

Что нового в C# 8?

Reading time14 min
Views73K

«Восьмерка» еще даже не вышла RTM а я уже пишу про нее пост. Зачем? Ну, основная идея что тот, кто предупрежден — вооружен. Так что в этом посте будет про то что известно на текущий момент, а если это все подстава, ну, поделом.


Читать дальше →
Total votes 108: ↑98 and ↓10+88
Comments230

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity