• Удаленный рабочий стол на VPS (Linux) для самых маленьких?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    wiki.x2go.org
    Работает стабильно, звук поддерживает.
    Сам использую, всем доволен.
    Ответ написан
    2 комментария
  • С каких книг начать изучение C#!?

    @Oxoron
    Шарпер
    Шилдт Г. Полное руководство С#4.0. Сейчас вышла 5 версия, но на русском пока не видел. Отлично пишет для новичков.

    Далее - Троелсен. Troelsen_C# 2010 and the .NET 4 Platform. Видел переводы на русский, но качество у них хромает. Средний уровень.

    Финал - Рихтер. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C#. Это для спецов скорее по внутренней реализации, явно не для начинающих.

    www.microsoftvirtualacademy.com/training-courses/c...
    www.microsoftvirtualacademy.com/training-courses/e...
    www.microsoftvirtualacademy.com/training-courses/a...
    www.microsoftvirtualacademy.com/training-courses/c...
    www.microsoftvirtualacademy.com/training-courses/f...
    Тут курсы MVA. Есть на русском, есть на английском. Возможно, начинать стоит там.

    sergeyteplyakov.blogspot.ru/2014/04/best-books-on-... Здесь подробный обзор от .NET спеца.

    Спокойно кодировать можно будет после после первой половины Шилдта. Это полгода неспешного обучения.

    upd. Есть еще .NET Book Zero Петцольда. Её можно читать самой первой.
    Ответ написан
    6 комментариев
  • Кого выбрать для отслеживания статистики приложения?

    GavriKos
    @GavriKos
    Гугл-аналитика немного сложна в интеграции в сравнении с Flurry. В последнем - 2 строчки для того что вам нужно. В гугле - строчек 10 :-)
    Ответ написан
    2 комментария
  • Что представляет собой тестирование ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вообще вики можно для начала, а потом уже углубляться в литературу. Вот вам кратенькое описание, цель которого больше предоставить ключевые слова для поиска.

    Модульные, они же юнит тесты, предназначены для тестирования отдельных модулей/классов. Суть их в том, что мы тестируем поведение только одного класса за раз. Если класс ссылается на инстансы других классов - мы их мокаем. То есть подсовываем им фэйковый класс, который имеет тот же интерфейс, но внутри не реализациа методов, а проверка, вызывали ли метод, с каким аргументами, сколько раз вызывали и т.д. Так же методы мока могут возвращать стабы (заглушки), какие-то захардкоженные под какой-то кейс данные. То есть если мы пишем класс по работе с базой данных, сокет-сервер и т.д., нам стоит соединение с базой, сокеты и т.д. оборачивать в классы, что бы можно было потом подменить на моки это добро. Если у вас в юнит тестах идет реальная работа с файловой системой или что-либо в этом духе, то это уже попахивает интеграционными тестами. Подробнее можно почитать в документации к phpunit. Так же есть такая методология разработки как TDD, советую почитать "Экстримальное программирование" Кента Бэка в этом ключе.

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

    Интеграционное тестирование - тестирование нескольких модулей в связке. То есть мы тестируем наш компонент или его самодостаточный кусок в реальных условиях. Если этот компонент для работы с файлами - разрешаем ему доступ к файлам. Если база данных - то даем реальное соединение с базой. А можем что-то и замокать. Это как говорится, зависит от задачи. Скажем обращение к сторонним апишкам стоит мокать и стабить. Главная цель этих тестов, удостовериться что модули вместе работают хорошо. Особенно важно это когда модули пишут разные люди.

    Функциональное тестирование - это тестирования всего приложения в сборе. Если это REST API, то у нас через curl дергаются реальные методы, отправляются более менее реальные запросы и валидируются ответы. Если web-страничка, то это UI тесты с силениумом/phantom.js/zombi.js или, если нам не нужно еще и js тестить, просто curl + какой виртуальный браузер на том же php. Вообще по хорошему функциональные тесты не допускают никаких моков и т.д. но опять же если очень хочется то можно (опять же обращение к сторонним сервисам, контроля за которыми у нас нету).

    Но реалии таковы, что UI тестами покрывать проект не слишком удобно. Вопервых UI может меняться, а поддерживать их так же нужно. Во вторых это скучно. В третьих тесты могут просто падать... вот взяли и упали. И потом начинается, так, тесты опять упали... что там упало? А, не страшно, можно релизить. Так же на больших проектах UI тесты отрабатывают долго, очень долго, некоторых их просто ночью гоняют. Толку от тестов при таком подходе не слишком много, ибо разработчику стоит знать о том что что-то сломалось как можно быстрее. А так он приходит, видит что тесты опять красные, чинит эти красные тесты, и запускает... ждет... проходит пол часа к примеру, и где-то в другом месте отвалилось... Короче сами понимаете.

    Приемочное тестирование - по сути те же функциональные тесты, но подаются в контексте фича-спеков. Если вы работали когда-нибудь с QA отделом, то возможно слышали про такие штуки как acceptance criteria. То есть это тот чек лист, который должен проверить тестировщик что бы удостовериться что все хорошо. На основе этого чек листа можно написать функциональные тесты. Так же есть инструменты вроде Cucumber/Behat, которые позволяют писать спецификации в виде стэпов. В этом случае спецификации для этих инструментов могут писать QA а вы просто имплементите для них степы. То есть уменьшается прослойка между "acceptance criteria" и готовыми к выполнению тестов. Более того, стэпы можно реюзать, комбинировать, масса стэпов есть готовых, вам же необходимо только предоставить стэпы подготвалливающие систему (загрузка/генерация фикстур и т.д.). Короче лепота и удобно. Но медленнее интеграционных, зато не такие жесткие как функциональные, за счет этого их проще поддерживать. QA пишут спеку, реализуем тесты под эту спеку, пишем код под тесты, тесты зеленые - функционал готов.

    Ну и есть еще всякие термины типа пирамида тестов и т.д. Мол лучше много юнит тестов, чуть поменьше интеграционных и мало функциональных. Тогда тесты выполняются быстрее, а покрывать все и вся функциональными тестами обычно перебор.

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

    Короче почитайте про TDD и ATDD (можно и BDD затронуть, но тут не только от программиста зависит, менеджеры, заказчик или продукт-оунер тоже должны быть вовлечены, по сути этот подход хорошо работает в рамках продукта какого-то, на фрилансе и в аутсорсе редко можно встретить) , Continious Integration и Continious Delivery.
    Ответ написан
    Комментировать
  • Отмена банковской тайны: открывать ИП или нет? И каковы особенности работы в белую с зарубежными клиентами?

    StanEgo
    @StanEgo
    Как уже сказали ранее, помимо 6% есть взнос в фонды, который можно вычитать из стоимости уплаты налога (но не более 50%). Так что с ростом заработка этот расход будет стремиться к нулю.
    a) обычно делают три счета, расчетный рублевый и расчетный+транзитный валютные, но если с транзитного валюту сразу продавать, то расчетный валютный не нужен. Лично я для покупок зарубежом оставляю часть валюты, избегая двойной конвертации.
    б) да, для себя я использую такую форму - yarmonov.pro/files/invoice.docx
    в) да, достаточно прикрепить счет-договор и надрессировать валютного контроллера.

    Что до вопроса в целом, то мне кажется, что 6% - не такая большая сумма за белый бизнес. Взносы в пфр дают стаж и смешную пенсию. Обороты по ИП в банке открывают кредитные инструменты. Зарплатные клиенты, как правило, имеют сниженные ставки и "отбить" налог можно снижением платежей по кредитам.

    А срок давности для незаконного предпринимательства может составлять до 6 лет, так что любое неровное движение в будущем может побудить поднять всю финансовую поднаготную и тут все банковские тайны становятся явными.
    Ответ написан
    9 комментариев
  • Можно ли регистрировать несколько аккаунтов ios разработчиков?

    @yakubov
    У меня есть три аккаунта привязанных к одной карте - проблем нет.

    Но apple id везде разный (соотв. на разные емейлы).
    Ответ написан
    4 комментария
  • Кто-нибудь получал образование на intuit.ru?

    opium
    @opium
    Просто люблю качественно работать
    я учился в интуите, диплом не получал, но курсы у них есть толковые, тут вы должны понять, что вы учитесь для себя, в подавляющем большинстве в айти области не нужен диплом, ну пойдете вы работать в яндекс и никому там ваш диплом не нужен если у вас нет знаний, а если знания то тоже диплом не нужен.
    Образование в России обесценилось ниже плинтуса, сейчас важны только знания и опыт к сожалению, на самом деле универ должен как раз их давать, а не диплом, а на деле выдает только диплом.
    Единственное ограничение которое я вижу в работе это часть госмконтор где требуется диплом по умолчанию, но сейчас и большинство госкомпаний берут без диплома.
    Ответ написан
    Комментировать
  • Выбрать СУБД между MySQL, PostgreSQL, MariaDB и MSSQL?

    @frantic
    Выбирайте то, что знаете лучше!

    Если MySQL, то рассмотрите MariaDB или Percona. Да и на них вы сможете переехать с MySQL в любое время, так как они обратно совместимы.
    Судя по вашим данным, вопрос нагрузки при учете прямых рук, возникнет перед вами года через два-три. А преждевременная оптимизация может погубить проект.

    И постарайтесь максимально отказаться от JOIN'ов. Как правило из-за них возникает большинство проблем.
    Ответ написан
    Комментировать
  • Обмен данными между клиентом на ActionScript3 и сервером на PHP

    miraage
    @miraage
    Старый прогер
    Учавствовал в разработке таких игры. Использовали amfphp. Была какая-то простенькая библиотека, но видать писали ее сами разработчики, на нашел похожей.

    этих двух представлять не надо:
    AMFPHP
    Zend AMF

    а на этих можно и посмотреть:
    SabreAMF
    PHP AMF3 extension (это исходники)
    Ответ написан
    4 комментария
  • Websockets: где работает?

    demark
    @demark
    Для таких целей (выяснить поддержку фичей браузерами) использую caniuse.com. WebSockets
    Ответ написан
    Комментировать
  • Защита программы от декомпиляции Java, C++, С#

    @xredor
    C++
    И поручить разработку плохому архитектору, он запутает код лучше любого обфускатора.
    Можно подумать заодно о собственном упаковщике, кое-кого остановит.
    Ответ написан
    1 комментарий
  • Задачи на многопоточное программирование в .NET?

    @korvindest
    Игровой сервер это слишком круто, попробуйте начать с реализации чата с сервером, клиентом и одной общей комнатой, без всяких приватов.
    Эта задача позволит столкнуться со многими проблемами многопоточности, но при этом ясна, понятна и проста.
    Кроме этого я бы рекомендовал почитать различные статьи на тему потокобезопастного создания объектов (в основном singleton), методы борьбы с deadlock, ну и про различные методы синхронизации потоков (синхронизация метода/блока, симафор).

    Я сам больше пишу на Java, но думаю что тут не должно быть разночтений.
    Ответ написан
    1 комментарий
  • Как получить сертификат Microsoft?

    Pavel7
    @Pavel7
    Опишу последовательность действий по получению сертификата:

    1. Выбираем экзамен, который хотим сдать. Для этого идем сюда, выбираем технологию и смотрим по ней экзамены с типом MCTS для начала. Например, MCTS по .NET 4.0 WEB: 70-515. Как правило, все они начинаются на 70.

    2. Если сдавать будем хотя бы два экзамена, имеет смысл заиметь ваучер на скидку и бесплатную вторую попытку тут.

    3. Идем на сайт прометрика, регистрируемся и делаем Schedule an exam. Вводим всю информацию, выбираем где будем сдавать и во сколько (об этом ниже), платим кредиткой. В случае ваучера надо будет оплатить сразу весь ваучер, все последующие заказы будут бесплатными.

    4. Усиленно готовимся, ботаем и все такое. Официальные книги и курсы будут на страничке экзамена из п.1.

    5. Идем на экзамен, берем два документа (паспорт и права например), сдаем.

    6. Сдав все MCTS, сдаем MCPD экзамен по технологии.

    Могу сказать про следующие прометриковские центры в Москве:
    — KUDITS-Obraz (Калужская), прямо у метро, работают допоздна, поэтому можно записаться на семь-полвосьмого вечера после работы (и опоздать еще на полчаса :))
    — PC Ware Academy (Новослободская), удобны тем, что одни из немногих работают в субботу, но один раз прокинули меня со сдачей (никого не было в офисе).
    — INC ETC SAMAN (САМАН МАТИ) (Таганская) тоже работают в субботу, но ушлые ребята стригут дополнительно по 150р. за каждую сдачу.

    Насчет УЦ «Специалист» — судя по сайту, у них цена на тот же 70-515 — 2070р, а по прометриковскому ваучеру будет 1100р. Тоже неплохо ребята навариваются.
    Ответ написан
    1 комментарий
  • Как получить сертификат Microsoft?

    polym0rph
    @polym0rph
    Основатель Bits.media
    Зарегистрироваться нормально на экзамены МС это уже часть теста, не шибко упорные отсеиваются еще на этом моменте)
    Ответ написан
    2 комментария