• Какую литературу почитать о стандартных решениях в веб-приложениях для бизнеса?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Есть хорошая книжка, которая может служить и учебником, и справочником. "Руководство Microsoft по проектированию архитектуры приложений, 2 издание" (download.microsoft.com/documents/rus/msdn/%D1%80%D...).
    Если закрыть глаза на рекомендации по использованию именно технологий Microsoft, то будет вполне целостная картина того, как решаются самые разные вопросы проектирования, от самого верхнего уровня до деталей реализации. Рассматриваются, в том числе, и вопросы, связанные с реализацией web-приложений и сервисов, причём в общем контексте enterprise-системы.
    Ответ написан
    Комментировать
  • Где найти best practice по c#?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Если Вы уже работаете над конкретным проектом, то приоритет составляют технологии, используемые в этом проекте. Вы же не хотите потерять работу, не так ли? К тому же у Вас в этом случае имеется хорошая возможность для роста, просто изучая код, написанный более опытными коллегами. Не стесняйтесь задавать вопросы. И старайтесь понять, почему принимаются те или иные технические решения.

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

    Если Вы собираетесь менять работу, то изучите, какие технологии нужны на той позиции, которую Вы хотите занять. Я обычно советую иметь план собственного развития лет на пять вперёд: определяете, кем Вы хотите быть через пять лет, определяете список навыков, расставляете приоритеты. И день за днём нужно идти по этому плану, периодически подвергая его рецензированию.

    Что касается практик, то советовал бы научиться работать с MSDN. Есть там специальный раздел, patterns & practices: https://msdn.microsoft.com/en-us/library/ff921345.aspx .

    Ещё почитайте блоги разработчиков Microsoft. Например, блог Сергея Теплякова sergeyteplyakov.blogspot.ru
    Ответ написан
    Комментировать
  • Карьера программиста после 30+. Миф или реальность?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Боже, сколько страшилок понаписали!

    Дай-ка и я своё слово вставлю.

    Я начинал свою профессиональную карьеру дважды. Первый раз в 2002-м году. На тот момент мне было 26. Работал с Delphi. Дослужился до ведущего разработчика. Но пришлось сменить направление деятельности. И второй раз снова начал с простого программиста, осваивающего Java и .NET. Это было уже в 35. Сейчас работаю архитектором.

    От одного хорошего человека слышал, что главный инструмент разработчика - его голова и опыт. Я бы ещё добавил сюда интуицию и кругозор. Опыт в начале пути стремится к нулю, но голова в 35 работает лучше, чем в 20, интуиция и кругозор значительно более развиты.

    Что до сил, то да, их в 20 лет больше. Но вот внутренней мотивации и простой мудрости не хватает, так что силы транжирятся почём зря. Нет ещё опыта в том, чтобы ставить перед собой цели и добиваться их. Наличие семьи - тоже важный мотиватор.

    Юность имеет свои преимущества, но они не решающие. И недостатков у молодых программистов тоже много. Так что я бы не стал говорить, что у Вас всё плохо. В 30+ жизнь только начинается. Это я точно знаю!

    P.S. У нас в проектах работают люди разного возраста и пола. Программисты в 30 и старше - хорошее ядро команды. Они вносят стабильность. В том числе и в код. Но иногда нужно их мотивировать на то, чтобы пробовать что-то новое. И тут важно присутствие молодёжи.
    Ответ написан
    2 комментария
  • Как организовать запись телефонных разговоров?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Не пробовали использовать готовые решения? В своё время работал над интересным проектом, думаю, вам вполне подойдёт: www.sl-systems.ru
    Ответ написан
    Комментировать
  • Как рассчитать производительность сети для видеонаблюдения в организации (учебное заведение)?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Ещё раз: систему видеонаблюдения уровня организации нужно проектировать. Факторов очень много. И в каждом конкретном случае они свои.
    Ответ написан
    Комментировать
  • Заочное обучение по ИБ бывает или нет?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Посмотрите на МИФИ, очно-заочный факультет (mephi.ru/about/faculty/Faculty_distance_education). Там есть специальность 10.03.01 – информационная безопасность (методы защиты информации в компьютерных системах и сетях). Но точнее не скажу. Лучше всего туда позвонить.
    Ответ написан
    Комментировать
  • Какой ваш оптимальный набор паттернов?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Я отношусь к паттернам проще. Паттерн - это некий компонент архитектуры (логической, физической, поведения и т.п.), который я как архитектор могу многократно применять при работе над архитектурой системы. Есть компоненты, которые известны всем, и есть те, которые нужны только мне вследствие специфики разрабатываемых мной систем. Я могу объединять неколько паттернов в один, могу дорабатывать существующий паттерн до нужной мне кондиции, могу что-то сделать совсем своё.

    Некоторые из общеизвестных Вы перечислили. Ещё можно посмотреть, например, здесь: Catalog of Patterns of Enterprise Application Arch.... Возможно, многие из этих паттернов Вы тоже используете, только не называли их в своём вопросе. Но со временем, возможно, у Вас накопятся собственные наработки.
    Ответ написан
    Комментировать
  • Как бороться с тем, что клиент не узнает о смене состояния сервера из-за таймаута?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Ещё как вариант рассмотрите возможность асинхронного выполнения операций на сервере. Нужно организовать два-три метода в API. Первый метод запускает процесс изменения состояния (с валидацией текущего состояния и возможности его изменения) и не требует обязательного возврата результата. Второй метод (не обязательный) возвращает прогресс изменения состояния сервера. Третий - возвращает результат - текущее состояние сервера. В этом случае даже если на один из запросов не придёт ответа, клиент может запрос повторить.
    Ответ написан
    Комментировать
  • На сколько исполнимая идея и исполнимая ли вообще?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    СУБД не занимается распознаванием изображений. Она может их хранить.
    Если Вы имеете в виду защиту от ботов посредством использования CAPTCHA, то вот несколько статей по теме (примеры на C#):
    Simple CAPTCHA, Create your own in C#
    Captcha в приложении ASP.NET

    P.S. Для PHP: Разработка CAPTCHA своими руками
    Ответ написан
    Комментировать
  • Что необходимо для работы на должности менеджер проектов?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    По поводу должности, похоже, что в каждой организации понятие об обязанностях МП своё. Не парьтесь, если всё устраивает.

    как я понял в основном измеряется в днях и сложно прописать в часах


    В MS Project совершенно спокойно можно планировать в часах. Только размерность ставьте явно.
    Ответ написан
    Комментировать
  • Изучаю java,загвоздка состоит в том,куда двигаться дальше?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Но чтобы устроится на работу junior developer мне нужно сделать хотя бы два проекта


    В чём проблема? Возьмите и сделайте. Что-то суперсерьёзное делать не нужно. Надо лишь показать, что можете работать со средой разработки и знаете основы языка Java. От стажёра большего не требуется.

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


    А вот эти навыки Вы должны продемонстрировать. Достаточно бесплатных курсов, чтобы получить первичные навыки. Например, этот. Тщательно воспроизведите примеры.

    Неплохая среда разработки Eclipse (https://eclipse.org/downloads/packages/eclipse-ide...). Есть книги на русском, есть статьи и документация.
    Ответ написан
    1 комментарий
  • C чего стоит начать переход с C# на Java?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Начинайте с начала. Несмотря на некоторую похожесть названий классов, архитектура .NET и Java разная. Начальный уровень владения C#, возможно, даже хорошо в Вашем случае: мозг клинить не будет.

    Я бы посоветовал сначала познакомиться с возможностями языка. Возьмите какой-нибудь бесплатный видеокурс, например, Разработка приложений для ОС Android. Не спеша работая с демонстрируемыми примерами, получите первые навыки и почувствуете среду разработки.

    А дальше - книги, более глубокие курсы, проработка разных тематик и выбор своего пути.
    Ответ написан
    Комментировать
  • Где можно посмотреть исходный код backgroundworker?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Ответ написан
    Комментировать
  • Существуют ли клиент-серверные решение для просмотра изображений без возможности сохранения на клиентских машинах?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Что значит "без возможности копирования"? Если я смогу вывести файл на экран, то я смогу нажать PrintScreen и затем вставить скопированный кусок куда мне нужно. А если я могу делать это руками, то могу и автоматизировать весь процесс, вплоть до вызова OCR. Скажу по секрету, в своё время участвовал в разработке одной классной штуки под названием "Стелс Лайн", там есть замечательная штука SL-Screen. И она всё описанное делает автоматом, например, по смене картинки на экране.
    Ответ написан
    Комментировать
  • Как работает метод "3 корзин" для управления проектами?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Помнится, ещё Джоэль Спольски говорил о вреде многозадачности, применительно к людям. Это как раз Ваш случай. Не переключайтесь на менее важную задачу, не закончив более важную. Исключений нет.

    Если Вы, как и я, работаете над несколькими проектами одновременно, то у Вас есть общий набор задач с расставленными приоритетами. Вы работаете только над задачей, приоритет которой самый высокий, остальные стоят в очереди. Если таких задач несколько, тащите к себе манагеров и заставляете их уточнить приоритеты.

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

    Как быть с запросами на исправление критических багов? - Говорите всем пользователям, что их заявки приняты и ведётся работа, затем расставляете приоритеты и последовательно исправляете все баги.
    Ответ написан
    Комментировать
  • Как выстраивать процесс разработки? Лучшие практики оценки?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Я в IT-области почти 20 лет. И та же беда. Возможно, только проекты у меня чуть больше. Не могу сдвинуться с места, пока не сделаю декомпозицию задач в более-менее понятный план.

    Более-менее понятный - это план, который детализирован с точностью до 4 часов и учитывает мой фокус-фактор. Поскольку меня часто отвлекают по разным посторонним проектам, он невелик, где-то 0,7-0,75.

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

    В конечном итоге, я пришёл к плану, выстраиваемому в MS Project. В план выгружаются все задачи по всем проектам, которые нужно решить. Они детализаруются, как я сказал, на подзадачи длительностью до нескольких часов. Устанавливаются связи. План готовится на 3-4 месяца вперёд. Сохраняется базовый план. После этого, конечно, план постоянно корректируется. Фиксируется каждый день, сколько реально я потратил на каждую задачу, вводятся новые задачи, какие-то задачи переносятся. В целом, это занимает полчаса в понедельник и по 15 минут в другие дни.

    И у меня всегда перед глазами цифры, которые я закладывал в план изначально, плановые показатели по состоянию на данный момент и реальные затраты. Анализ показателей позволяет мне корректировать свои оценки при составлении будущего плана.

    P.S. Чуть не забыл. Менеджеры разных проектов, конечно, стараются на полную катушку загрузить своих сотрудников. Ваш план не должен содержать переработок! Если он полон, то собирайте менеджеров, и пусть они расставляют приоритеты вашим задачам. Если всё важно и срочно, то один раз можно пойти навстречу хорошим людям, но потом пусть ищут вам напарника.
    Ответ написан
    Комментировать
  • Как правильно построить план развития в сфере информационной безопасности?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    В общем решение такого вопроса уже кому-то давал.
    1. Понять, кем надо стать лет через 5.
    2. Понять основные компетенции, которые к тому моменту нужно иметь.
    3. Расставить приоритеты освоения компетенций.
    4. Вкладывать время, силы и деньги в получение нужных компетенций.
    5. Не реже раза в год пересматривать цель и список компетенций.

    В частности, советую изучать PKI. Т.е. инфраструктуры открытых ключей. Как аналитику, вам это придётся по душе: PKI требует очень плотной работы с бизнес-требованиями и ограничениями организации-заказчика. В то же время, эта область активно развивается.

    На затравку, поищите эту книжку: О.Ю. Полянская, В.С. Горбатов. Инфраструктуры открытых ключей. - М.: Интернет-Университет Информационных Технологий, 2007. Написана специалистами МИФИ, очень дельная вещь. Одноимённый курс есть на сайте www.intuit.ru.
    Ответ написан
    Комментировать
  • Увеличит ли асинхронный метод быстродействие сериализации / десериализации с файлом не больше 200 строчек?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Хм. Строка строке рознь. Можно и гиг данных в одну строку забить.

    Я бы не гадал. Здесь достаточно провести измерение на прототипе с синхронным выполнением при эмулировании пиковой нагрузки. Если быстродействие будет приемлемым для бизнес-задач пользователей, оставьте это решение. Если будут сомнения - сделайте прототип с асинхронным решением и сравните результаты.
    Ответ написан
    Комментировать
  • Как избавится от дублирования кода?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Я бы создал класс AbstractClass, чтобы CommonClass и ConcreteClass1 наследовались от него. ConcreteClass2 должен наследоваться от ConcreteClass1. В AbstractClass вынес бы из CommonClass те члены, которые должны быть общими для всех классов. Всё.
    Ответ написан
    Комментировать
  • Как правильно "раздавать" код программистам?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Самое оптимальное решение - на основе архитектуры. Легко раздавать разным командам работу над конкретными компонентами системы, особенно, если в системе уже определены интерфейсы.

    Но если архитектура такого деления системы не позволяет, то у вас проблемы не исчерпываются раздачей задач. В общем случае приходится давать каждой команде работать над некоторым кодом на основе некоторого прототипа, с обязательным определением правил создания кода. Результат принимается на основе демонстрации работы прототипа и code review. После завершения всех прототипов команда интеграции должна будет вытащить нужный код из прототипов и объединить его в единое целое. Такая интеграция - задачка препротивная, надо сказать.
    Ответ написан
    Комментировать