• Как лучше реализовать прием оплаты за фриланс услуги?

    niksite
    @niksite
    Если беспокоитесь о комфорте клиента, то PayPal.me
    Если нет желания переплачивать посредникам, то ИП УСН6% + валютный счёт и переводы по swift.
    Ответ написан
    Комментировать
  • Где я могу проверить качество своего резюме?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Не надо спрашивать HR и рекомендаций сервисов!
    - напишите о своих навыках в описании о себе максимально подробно — это главное поле, остальные миллион полей -- полная дичь
    - напишите 2-3 места работы с описанием релевантных задач (не протокольного формата, а просто — что делали)
    - постарайтесь обойтись без местоимения "я" и без эпитетов (без единого чтобы вообще)
    - поменьше галиматьи про "выберите навыки из списка", меньше про длинные названия университетов и курсов... меньше про личный спорт и хобби — это все фишки сервисов не нужные... вот список того, чем пожертвовал ради хорошего описания, которое не затеряется в куче полей:
    5b4f1446bced5585230989.png

    ...

    P.S. спрашивать кадровиков, это как спрашивать девушку "какие парни тебе нравятся" они говорят "умные и спелые", а по факту выбирают нахрапистых и наглых или смазливых или вообще фиг поймешь как... также и тут, делайте хорошую презентацию без советов кадровиков (но с моими советами :)

    PS>S. Распространяйте резюме эффективно, вот описание как искал работу через vc.ru
    Ответ написан
    17 комментариев
  • Каков путь развития разработчика, с/с++/python?

    AgentProvocateur
    @AgentProvocateur
    Советую хорошо подумать, правильно ли выбрал сферу деятельности для кардинальных перемен. В it 26 лет - это уже внушительный возраст для входа, кто бы что ни говорил. Не слушай студентов на тостере и онлайн-коучеров, а для начала посмотри такое мнение и такое (и другие ролики). Если ты не ссышься кипятком от вида кода, и не вскакиваешь в 5 утра, чтобы быстрее сесть программировать, то минусов в этой деятельности может оказаться куда больше, чем плюсов. Ну и вообще, чтобы сбить флёр романтики тыц и тыц.

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

    Если охота не отбилась, то нужно определиться со сферой - энтерпрайз (c#, java), мобайл (java, swift, kotlin и т.д.), web-разработка (а там либо фронтенд - html, css, туча js-фреймворков, либо бэкенд - php, python, ruby, node.js и также туча фреймворков). А может и вовсе администрирование серверов, devops, big data, машинное обучение, статистика, системная аналитика, gamedev и пр. По каждой нише свой огромный технологический стек, которого хватит на годы только изучения...потом годы вырастания из джуниора, потом годы закрепления в мидлах, а потом до свидания, потому что 25-летних синьоров на улице очередь стоит))

    От того, что ты взял первые 3 языка из топ-2017 толку мало (java куда дел тогда?). На полноценное освоение (прежде чем к полноценной работе приступать), нужно минимум 2 года потратить активного набивания шишек (и не час-полтора после работы, а с утра и до вечера). Пройди курс "основы программирования на языке X", и сразу двигайся по выбранной нише, нет смысла залипать на C/C++ если нет конкретной цели их приложить к чему-либо.

    Если тебе "для души" - то пробуй всё, на что глаз ляжет, и выбирай на практике, а не по советам с форумов. Если нужно поскорее на работу выйти, основной спрос на джуниоров идет в java, web (как правило, вёрстка, php и cms), 1С. На фрилансе главенствует web-разработка, в основном js на фронтенде и php на серверной части. Чтобы понять, за что браться, достаточно открыть хх.ру, биржи фриланса и изучить спрос.

    Но я действительно настоятельно рекомендую не вестись на моду, сказки об уютных лофтах, кофе-печеньках, огромных зарплатах и продолжать развиваться в инженерии. Меняй сферы, компании, расти до главного инженера, будут у тебя и деньги, и личная жизнь, и стабильность, и работа интересная, а не сколиоз, выжигание глаз кодом и погоня за новыми фреймворками))
    Ответ написан
    6 комментариев
  • Что делать веб разработчику, если уже всё придумано?

    AgentProvocateur
    @AgentProvocateur
    Правильно заметили, что есть люди-исполнители, а есть люди-генераторы идей. Нужно реально взглянуть на себя и...принять это. Быть профессиональным исполнителем гораздо кошернее, чем быть генератором провальных идей. По статистике, 9 из 10 стартапов провальны...зачем пополнять собой этот список? Если ты - рыба, то многого ли ты добьешься от фрустрации по поводу неумения залезать на дерево?

    Самый верный путь к рабочей идее:
    1. Проработать в какой-либо сфере достаточное количество времени;
    2. Познать её изнутри на собственной шкуре;
    3. Выявить в ней боли/проблемы/недостатки;
    4. Решить их с помощью прикладного навыка (программирования);
    5. Обкатать в собственной работе;
    6. Упаковать решение и реализовать коллегам по сфере;
    ...
    7. PROFIT!

    Далее...даже если завтра в голову залетит рабочая идея, готов ли ты её реализовать? У тебя есть команда, готовая работать минимум полгода-год бесплатно на время создания беты, тестов, обкатки, раскрутки? Она сможет действительно реализовать всё как надо? Если нет команды, имеются ли у тебя средства на зарплатный фонд хотя бы для 5 человек на эти полгода-год? А с учетом налогов и отчислений (+30% к зарплате на руки)? У тебя есть условия для работы этих 5 человек? Есть ли у тебя сумма на маркетинговое исследование твоей идеи (или лучше облажаться на авось)? Есть ли у тебя хотя бы миллион на первичный трафик из директа? Или надеешься донести свой стартап до пользователей путём емэйл-спама?)) Я не указал и доли того, что потребуется для реализации небольшого web-сервиса, даже при наличии действительно рабочей идеи. Может быть, идеи не прут именно потому, что ты просто не готов к их реализации, и неча порожняка гонять?)

    Как выглядит стартап глазами романтичного юноши, начитавшегося глянцевых историй успеха:
    1. Придумать гениальную идею;
    2. Закодить в гараже в одну харю или в паре с дружбаном;
    3. Разместить на сервере и получать от мира благодарности, признание и мешки денег.

    Как выглядит стартап на самом деле:
    1. Пахота минимум 10 лет в одном направлении/сфере;
    2. Наработка профессионализма, идей, контактов, связей, клиентской базы, понимания всех нюансов сферы;
    3. Угон базы, угон клиентов на себя, переманивание лучших коллег/сотрудников, оформление юрлица, открытие "своего дела" на рабочей идее)))

    К примеру, "икона стиля" стартаперов - Павел Дуров, он идеолог? Нет! Прикол в том, что он именно стырил рабочую идею (также, как тырят клиентскую базу у работодателя), собрал команду, создал для неё условия, привлек корешей-евреев с еврейскими ресурсами, бюджетами и влиятельной питерской крышей, и обеспечил этому всему грамотный проект-менеджмент и маркетинг. Дело в идее? Нет, дело в реализации:)

    А если серьезно, сайт - это просто промо-материал, как билборд, только интерактивный и в интернете. Языки веб-разработки - такие же инструменты, как молоток для изготовления билбордов. Веб-разработчик - нифига не носитель уникальных знаний (который просто обязан повторить успех Цукерберга, иначе не тру), и всего-лишь современный слесарь, изготавливающий технологичные интерактивные промо-материалы. А теперь представь слесаря, который завидует предпринимателям, которые заказывают у него билборды, и вскидывает руки к небу с криком "Доколе??")) Смешно? Смешнее только реплики других слесарей на тему "если нет идей, значит меняй профессию"))

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

    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.
    Ответ написан
    Комментировать
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Трудно - и с каждым годом будет все сложнее и хуже. С каждым годом растет объем пула "минимально-необходимых для программиста компетенций" . Каждый год появляются какие-то новые фреймворки, инструменты, фишки - которые по идее должны облегчать и упрощать разработку - но на деле вырастают непреодолимой стеной между тобой и "реальным миром веб-разработки". Потому что ты стареешь, а технологии молодеют.

    Я бы картинку нарисовал, но там очень уж нецензурный вид получается ;-)

    И "впихнуть" в себя все новые технологии ну не получается никак - ты или распыляешься и все знаешь по верхам... или идешь вглубь темы. Но тогда приходится откладывать новые технологии в сторону, потому что на них тупо не хватает времени и/или сил. В молодости - времени. Позже - сил.

    Уже сейчас чтобы тебя считали верстальщиком/программистом/фронтэндером/бэкэндером - надо знать в 2 раза больше технологий, чем 2 года назад. Этакий Закон Мура наоборот. Да вы сами просто посмотрите эти списки "компетенций"!

    Читаешь список требований к "Web-программистам" и видишь, что месяц за месяцем, год за годом HR-ы и те, кто там им задачи ставит, вписывают в требования все больше умных словечек, которые они сами услышали и не понимают, зачем оно им нужно и нужно ли? Все ближе и ближе ситуация подходит к "Если бы водителей принимали на работу как програм.... В 2010 году это была "шутка юмора". Сейчас это уже почти реальность.

    Пример хотите?

    Одна государственная организация выставила список требований к "веб-программисту". При зарплате в 35000 рублей он должен уметь чуть ли не МКС программировать и чуть ли не кластера из сотен серверов настраивать. А на деле основной задачей человека будет - таскать проекторы из аудитории в аудиторию, чистить мышки студентам, переставлять winxp и изредка, раз в полгода - добавлять статью на сайт гос.организации. Откуда информация? Связался с человеком, которому 45, который в этой организации работает уже 18 лет. Ему стаж капает, а деньги он зарабатывает совсем в другом месте.


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

    Но это все лирика и крик души. Извините.

    И да, к 35-40-45 годам по мнению "молодых и амбициозных IT-специалистов" ты должен обладать строго определенным списком компетенций как в профессии, так и по жизни (к примеру, я столнулся с отказом в приеме на позицию программиста потому что у меня нет... автомобиля. Зачем программисту автомобиль? Ну там сложная и длинная логическая цепочка, сводящася к "раз у тебя нет автомобиля - ты лох, а лохи нам не нужны").
    Мне кажется, проблема в том числе и в том, что подавляющее большинство этих самых "молодых и амбициозных" специалистов совершенно не думают о своем будущем. Нет, я не про то будущее, которое "куда я пойду, когда закончу вот этот крутой проект". Я о реальности. В их понимании 35 лет - это недостижимо далёкое будущее, а до 50 они не доживут (а если и доживут - то в мечтах тимлидами в гугле).

    Соответственно "молодые и амбициозные специалисты" с презрением смотрят на людей, которые отдали 15 лет разработке определенной платформы, платформы, которую сейчас тщится заменить какой-то пул новых технологий. По их мнению - все что старше 5 лет - ненужное устаревшее говно мамонта. А те, кто не знают появившуюся полгода назад технологию - отставшие от жизни ламеры.
    Also, Эффект Даннинга—Крюгера тут работает в полную силу.

    Резюмирую: трудно, если у тебя нет в резюме стапятисот сделанных проектов. И чем дальше - тем сложнее и труднее будет. Но тебе может повезти - если ты компетентный специалист в узкой области (даже если она 'legacy'). Или ты можешь найти синекуру - гос.организацию, в которой ты присоединишься к когорте таких же скинутых с паровоза прогресса "молодыми и амбициозными". Не переживай, через 20 лет скинут их. А ты останешься.

    Вот только кушать хочется сейчас. Хотя бы просто хлебушка.
    Ответ написан
    23 комментария
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    BBmike
    @BBmike
    Мой друг, также программист 1С, рассказывал о ситуации у них в конторе, где он был свидетелем, как резюмэ 2 кандидатов с солидным опытом разработки были отброшены почти сразу, так как обоим было 43-45 лет. И директор IT-отдела сказал тогда другу: "ну куда мы будем таких брать? Нам нужен молодой, энергичный".


    такие завораживающие истории существуют в любой профессии.
    также существуют жуткие рассказы, когда не берут слишком молодых или слишком женщин или слишком нерусских или слишком без прописки или еще много по каким признакам.
    но мы-то понимаем, что всё это ерунда. это естественные препятствия, которые должен преодолеть желающий и не более того.
    Ответ написан
    9 комментариев
  • Лучший способ организации интеграции 1С с сайтом?

    Falseclock
    @Falseclock
    решаю нестандартные задачи
    Статья старая и не актуальная. Есть новые инструменты и при чем весьма удобные.

    1. Перейти на версию 8.3.6
    2. Открыть доступ по OData
    3. Профит.

    Никаких битриксов. Драйвер есть готовый тут https://packagist.org/packages/falseclock/dbd-php

    Позавчера опубликовал статью infostart.ru/public/605427
    Ответ написан
    3 комментария
  • Какой пакет под админку лучше Laravel 5.4?

    @Genuas
    Программист
    Сам сделай. Так будет лучше.
    Ответ написан
    4 комментария
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

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

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Почему ember, angular и react сравнивают в скорости?

    @murlogen
    Людям нравится мерять числа.
    Мегапиксели, скорости систем разработки ПО, легкость туристического снаряжения, размеры экранов смартфонов и пр. и пр.
    То, что можно перевести в числа - то нам нравится измерять и обсуждать. Это особенность человеческой психики - мы все немного склонны к шизофрении и тяга к измерению в числах есть одно из проявлений этой тяги.

    Что касается сравнения перечисленного вами ПО, то это не корректно по той простой причине, что упускается из виду удобство разработки. Скорость давным-давно не является определяющим фактором. Мы уже 50 лет как не программируем на ассемблере (самый быстрый в исполнении, но крайне тяжелый в написании код).

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

    В чем толк скорости, если через пару месяцев разработки ты начинаешь парится в поиске нужного места в собственном коде? В чем толк скорости, если при малейшей переделке тебе нужно рефакторить 30% твоей системы?

    Это бессмысленно сравнивать.
    Ответ написан
    Комментировать
  • Почему ember, angular и react сравнивают в скорости?

    Jump
    @Jump
    Системный администратор со стажем.
    Подскажите, пожалуйста, почему их всё время сравнивают в скорости?
    Потому что людям нравится что-нибудь сравнивать.
    Ну не могут они без этого.
    Некоторые люди сравнивают тупое с острым, но некоторые на этом не останавливаются, и начинают сравнивать теплое с мягким, синее с высоким, и.т.п.

    Например, напишу одну страницу с 2-3 функциями на angular и тоже самое на ember, как мне увидеть/измерить скорость?
    Вот возьмите к примеру спорткар от мерседесса, и гусеничный трактор.
    Как вы можете измерить их скорость? Понять кто быстрее?
    Достаточно просто устроить тестовый заезд. Поставьте их на трассу и посмотрите кто придет первым.
    А уж какую трассу использовать - ровную асфальтовую, или по полю с расксшей грязью по колено это уж вам решать.
    Ответ написан
    Комментировать
  • Как перенять объектно-ориентированное мышление?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Возьми доки по ООП и какой-нибудь framework и потрать на них 48 часов. Не 2, а 48. И все станет ясно. Твоя проблема очень распространена после 2-го часа знакомства.
    Будет трудно, будет хотеться выпить, плюнуть и войти в белорусский рандом, но надо терпеть. Пройдет 48 часов и все станет на свои места.
    Ответ написан
    2 комментария
  • Что значит хорошо знать фреймворк?

    Скажу не по фреймворку... но принцип везде один и тот же. Это то что объединяет всех Мастеров своего дела. Хорошо знать - значит детально знать базу, понимать как оно все работает и на базе накопленного опыта решать поставленные задачи быстро находя точки минимального воздействия.
    Ответ написан
    Комментировать
  • Как сделать синхронизацию оффлайн приложения?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Очень хороший пример - devdocs.io
    + Автоматическая синхронизация
    + Хранилище - IndexedDB
    + полный стек оффлайн приложения с большими наборами данных
    + блин, все просто: 8 api вызовов к браузеру!

    Кстати, народ обычно забывает, что и WebKit, и Mozilla Local/Session Storage организованы поверх встроенного движка SQLite. Это я к тому, что некошерно хранить серьезные данные в Storage, когда есть в распоряжении мощный движок для хранения данных, не просто Key->ShortValue, а движок Key->Document (иначе обзываемый NoSQL).

    Поясню разницу: в Local/Session Storage уместно хранить небольшой набор часто используемых данных с небольшими конкретными значениями, для хранения документов - используйте движок IndexedDB. Нет смысла прятать в IDB куки - обращение к Storage в этом случае значительно быстрее, но впихивать в Storage документы - это уже полное извращение, в этом случае IDB будет в сотни раз быстрее.

    Вдогонку: модный некогда термин NoSQL, по сути свелся к механизмам хранения Key->Document, и современные документ-ориентированные хранилища теперь пытаются приспособить SQL к этим движкам.

    Учите матчасть, потомки!
    Ответ написан
    Комментировать
  • Каким уровнем знаний в веб разработке должен обладать программист чтобы переехать за границу?

    @hatiko
    Без разницы.
    Работники всякие нужны.

    Нулевые не нужны конечно.
    Но спецу среднего уровня - легко уехать.

    Только нужно не
    1. Уехать
    2. Искать работу

    А наоборот:
    1. Найти работу
    2. Уехать уже на конкретную фирму. Да и без этого рабочую визу не дадут.
    Ответ написан
    Комментировать
  • Разобраться в основах Vue.JS?

    data - это модель, объект где будут все данные приложения
    methods - функции обработки данных, логика приложения

    грубо говоря функциями из methods обрабатываем модель data и в шаблонах динамически меняются блоки подписанные на данные из модели
    Ответ написан
    Комментировать
  • Что должен уметь менеджер проекта (продукта)?

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

    1. Менеджер проекта организует разработку так, чтоб с доступными ресурсами уложиться в бюджет (денежный или временной) и дать на выходе работающий и качественный продукт. Для этого он в первую очередь руководит людьми, координирует сроки, внешние зависимости, определяет методики, устанавливает формы отчетности, но может и персонал набирать, и технику закупать... короче, он отвечает за все, что нужно для того, чтоб все крутилось, т.е. определяет КАК разрабатывать.

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

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

    2. Для трудоустройства - как повезет, а вот для работы нужно обладать солидными знаниями и опытом во всех этих областях плюс, в идеале, глубокими знаниями технической стороны вопроса... как минимум, знать, чем отличается интерфейс от абстрактного класса ;)

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

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

    5. Самая смешная часть вопроса... сначала покажите на деле, что способны заработать денег для фирмы, а потом уже задумывайтесь над тем, сколько просить за этот свой навык :)
    Ответ написан
    4 комментария
  • Какое решение вы бы выбрали для пересчёта большого количества записей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если надо пересчитать разово, то
    UPDATE `users` 
      LEFT JOIN (
        SELECT `user_id_from`, COUNT(*) AS `count` FROM `messages` GROUP BY `user_id_from`
      ) AS `from` ON `from`.`user_id_from` = `users`.`user_id`
      LEFT JOIN (
        SELECT `user_id_to`, COUNT(*) AS `count` FROM `messages` GROUP BY `user_id_to`
      ) AS `to` ON `to`.`user_id_to` = `users`.`user_id`
      SET `users`.`sended` = IFNULL(`from`.`count`, 0), 
          `users`.`received` = IFNULL(`to`.`count`, 0)

    В дальнейшем поддерживать через триггер, как написал Максим Федоров.
    Ответ написан
    Комментировать
  • Какое решение вы бы выбрали для пересчёта большого количества записей?

    qonand
    @qonand
    Software Engineer
    можно использовать триггеры СУБД на соответствующих действиях в таблице сообщений.
    CREATE TRIGGER `add_message` BEFORE INSERT ON `messages` FOR EACH ROW BEGIN
    UPDATE user SET sended = sended + 1 WHERE user_id = new.user_id_from;
    UPDATE user SET received= received + 1 WHERE user_id = new.user_id_to;
    END;

    ну и не стоит забывать:
    1. Про оптимизацию настроек самой СУБД
    2. Про индексы
    3. Про партицирование при необходимости
    Ответ написан
    Комментировать