• Стоит ли работать программистом?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Конечно, стоит! Что за глупый вопрос?!

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

    И вот мой знакомый на своем сервисе сформулировал основные причины, из которых следуют, почему пограммисты - "молодцы-ребята":

    Для девушек

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

    Для программистов

    if you.areAlone
    location.href = 'loveplusplus.ru/register'
    if you.haveRegistered
    while you.areAlone
    wait()
    checkEmail()
    findYourLove()
    liveLongAndProsper()


    P.S. Всякие истории и вводные видео уроки про карьеру программистов можно полистать здесь.
    Ответ написан
    Комментировать
  • Как передать нажатую кнопку в другой метод C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Параметр sender это и есть кнопка, которая была нажата. Передайте ее третьим параметром в TakeMessage, предварительно скастив к типу кнопки, например.
    Ответ написан
  • Как на Asp Net Mvc Core из Javascript кода в задачах gulp.js выполнить C# код и наоборот из приложения вызвать ф-ю javascript?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Нет
    Ответ написан
    Комментировать
  • Как влиться в тренд нынешней веб-разработки?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Пo CSS советую разобраться с Flexbox позиционированием (очень годная вещь в CSS3 на мой взгляд), ну и в целом, чтобы порядок в стилях был - проникнуться BEM (Block, Element, Modifier) подходом.

    Ну а в целом, никто не скажет толком, так как мнений много, что есть must have. Почитайте с десяток статеек вроде этой - Как стать профессиональным веб-разработчиком: прак... - в итоге получите представление, что на слуху сейчас.
    Ответ написан
    Комментировать
  • Почему не получается отправить файл?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Пример использует HttpPostedFileBase (есть определнная путаница с HttpPostedFile). Ликбез по теме загрузки файлов в ASP.NET MVC.
    Ответ написан
    Комментировать
  • Как вызвать произвольный метод на каждом элементе множества в стиле linq?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Вызвать метод c void в качестве возвращаемого значения:

    query.ForEach(c => { c.T(...); } );

    P.S. На счет эстетичности, проблема в именовании переменных и методов. Если назовете нормально, что и читаться будет хорошо и понятно.
    Ответ написан
    4 комментария
  • Как установить в задержку setInterval() рандомное число?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Никак, если коротко. А если с хаком - то на каждое срабатывания интервала - чистить его и создавать новый с новым периодом.

    P.S. Лучше опишите, задачу, которую хотите решить. Думается, найдутся более изящные решения.
    Ответ написан
  • Что учить Angular или React новичку?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Лучше Angular - помимо того, что будете знать популярный и востребованный JS фреймворк, так еще и освоите концепт model–view–controller (MVC), что в наши дни весьма полезно.

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

    P.S. А вообще - для практики и освоения концепции DOM - не лишним будет уверенно освоить jQuery для начала. Еще до тотальной очередной повсеместной реинкарнации MVC, жили и не тужили с JS и jQuery и в ус не дули. Если не уметь поддерживать разработку в этих рамках, то и фреймворки не спасут - будет ад и содом в коде.
    Ответ написан
    Комментировать
  • Сложный проект ASP.NET: выбор ORM?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Я бы сначала сделал миграцию как таковую, а потом бы уже подбирал ORMы под те ли иные нужды. Единственно - желательно архитектурно работу с данными убрать в некий data access layer (чтобы потом можно было, покрыв тестами, править только его, не сильно трогая код выше уровнями). Миграцию в данном случае тогда делать лучше на голом ADO.NET так как он позволяет делать с базой все что вам надо всеми перечисленными способами.

    Когда переедете с PHP можно будет заняться уже ORMами. Для CRUD операций нормально подойдет EF. Для bulk update/insert-ов - возможно проще оставить ADO.NET (такие операции я бы еще сделал асинхронными для обработки в бекграунде с последующей нотификацией об окончании - через опрос или через push уведомления - скажем WebRTC). Для выборок со сложными запросами - убрать эти сложные запросы в хранимые процедуры и дергать их либо через EF либо через ADO.NET. На счет маппинга данных на объекты используемые выше уровня data access - использовать AutoMapper. С его помощью можно смапить что-угодно на что угодно, главное не полениться и разобраться с возможностями его конфигурирования.

    Единой ORM, которая хорошо охватит все перечисленные виды работы с данными и при этом будет оптимальной для всех, просто не может быть. У всех ORM в основе есть та или иная концепция - как надо работать с данными. Универсальные же системы - это когда все части работают одинаково (причем одинаково плохо обычно :) ).
    Ответ написан
    2 комментария
  • Как вы понимаете (исходя из своего опыта), что на заказ (на фрилансе) откликаться не стоит?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Если клиент на предложение подписать контакт или обсудить объем работы, эстимейты, детали оплаты (сроки, способ перевода) отмахивается или не предлагает обсудить это потом, скорей всего это вызовет проблемы.

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

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

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

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

    Если просто в общении клиент неадекватен. При удаленной работе проблемы в общении повлекут за собой проблемы во всем.
    Ответ написан
    Комментировать
  • В каком виде луче всего передавать данные?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Можно реализовать постраничный вывод (pagination). Можно попробовать использовать двоичный формат передачи - сжать данные. Можно - сделать что-то вроде нарезки https://msdn.microsoft.com/en-us/library/aa717050.aspx

    P.S. Вариант с передачей облегченного набора данных, который нужен только для вывода в таблицу и подгрузкой данных по деталям записи - тоже нормально.
    Ответ написан
    Комментировать
  • C# стажировки в неаутсорсинговых компаниях?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Изучайте сайты компаний - вот список. У некоторых есть на сайте информация для интересующихся стажировкой (ищите разделы careers - обычно в подвале сайта ссылки). Кстати, почему не аутсорсинговые? Какая цель стажировки?
    Ответ написан
    2 комментария
  • C# или C++ для знающего C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    C# лучше, так как:
    1. Проще в изучении (много документации, примеров, фреймворков, библиотек, компонентов и т.п.)
    2. Хороший инструментарий (Visual Studio), который позволяет и код писать и кучу сопутствующих дел делать - втроенные инструменты на любой случай (task management, source control, test tools, database tools, инструменты для анализа, отладки и всего прочего).
    3. На нем проще и быстрее работать (несмотря на smart указатели в C++, в дотнете все-таки не требуется меньше размышлять о выделяемых ресурсах и их освобождении)


    В частности также вы уже начали - продолжайте. Зачем усложнять себе жизнь? Не стоит "рефакторить автогенеренный код" :) Так как веб разработки вам скорее всего не удастся избежать - осваивайте параллельно сопутствующие технологии и языки - JavaScript, например, набирает обороты уже года 3 и не собирается тормозить.
    Ответ написан
  • Как реализовать мультитенантную систему на asp.net mvc?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Логику вынести в API (WebAPI), к ней обращайться из ASP.NET MVC приложений, которые хостятся под разными доменами и при каждом обращении API будут передавать помимо прочих параметров два дополнительных - откуда запрос (чтобы идентифицировать домен) и кто спрашивает (чтобы идентифицировать пользователя).

    Логика в API на основании домена и пользователя будет соответственно использовать нужную базу данных. Можно соответствие домена/пользователя и его базы хранить в служебной базе данных. Там же - хранить данные о пользователях и прочую общую служебную информацию.

    Если структура баз данных для каждого пользователя одинаковая, то логикак обработки будет единой. При добавлении нового пользователя - достаточно будет задеплоить на домен новое ASP.NET MVC приложение, настроить его на адрес API, в служебной завести необзодимые данные. Если база под каждого пользователя создается автоматически программно - то все. Если нет - еще базу создать.

    CMS пишете?
    Ответ написан
    2 комментария
  • Уровень зарплат в Европе на удаленке такой же как и в офисе?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Оплата за работу в любом формате основана на том, что и все остальное в капиталистическом мире - точкой пересечения кривых спроса и предложения на товар (в данном случае - это услуги по разработке).

    Уровень оплаты в Европе разный, в каких-то странах он выше, чем в РФ и других странах Восточной Европы, когда-то входивших в СССР, а в каких-то - такой-же и ниже (Португалия, Испания и другие, например, не отличаются высокими зарплатами).

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

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

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

    Ставьте себя на место работодателя, чтобы понять при какой зарплате вас ему было бы выгодно нанять.
    Ответ написан
    Комментировать
  • Чем удобнее всего учитавать время работы над конкретной задачей?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Мы сделали бесплатный тул TopTracker. Попробуйте.
    Ответ написан
  • Что такое замыкание?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Комментировать
  • Как без костылей сделать так, чтобы footer сайта всегда был внизу?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Также советую изучить и использовать Flexbox-лейаут. Это действительно хорошая штука, которая упростит вам жизнь. В качестве материала для изучения совую статью "Что такое Flexbox? Описание всех css свойств, осно...", в которой описаны и наглядно продемонстрированы все концепции.
    Ответ написан
    Комментировать
  • Есть ли источники, в которых описаны Best Practice реализации GUI на C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Возможно, эта пара ссылок тоже поможет сориентироваться:
    https://developer.microsoft.com/en-us/windows/desk...
    https://msdn.microsoft.com/en-us/magazine/dd419663.aspx
    Ответ написан
    Комментировать