Задать вопрос
  • Как посчитать стоимость создания сайта?

    andrievski88
    @andrievski88
    SEO + маркетинг + веб программаривание.
    Не понимаю тех, кто работает без четкого ТЗ и понятия, что хочет клиент.
    Если есть четкое понятие ТЗ и конечной цели функционала сайта, вопрос цены снимается сам собой. Ибо все прозрачно, как на ладоне.
    Ответ написан
    9 комментариев
  • Как посчитать стоимость создания сайта?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Считать сайт по таким таблицам заведомо дурацкая идея. Создает излишнюю бюрократию и запутывает как вас так и потенциальных клиентов. Вам придется каждый раз садиться с вместе с клиентом и по пунктам раз за разом объяснять ему ваш прайс лист.

    Нормальная система - примерная оценка стоимости. Вы слушаете пожелания клиента в произвольной форме, примерно оцениваете стоимость. Озвучиваете ее клиенту, торгуетесь.

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

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

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

    @Wheelie
    Chrome no longer supports NPAPI
    Ответ написан
    Комментировать
  • Когда ооп быстрее процедурного?

    @Mercury13
    Программист на «си с крестами» и не только
    ООП рассчитано не на скорость исполнения, а на скорость разработки. Как, впрочем, и многие другие современные технологии разработки. Всё, что ООП делает, можно реализовать и без ООП, и даже эффективнее. Стоит ли — другой вопрос.

    Какую задачу конкретно решает ООП? Обуздать сложность разработки программ, собранных из взаимодействующих компонентов. Вот от этого и пляшем: если программа не модульная (например, какой-нибудь сложный научный расчёт), ООП мало поможет. Также ООП не поможет, если стандартная реализация ООП недостаточно эффективна по процессору или по памяти — например, в мою бытность JavaMe’шником ООП не жаловали, поскольку памяти много ел, типичный мобильник имел от 215 до 800 килобайт доступной памяти. Также плохо будет работать там, где нет взаимодействия (на типичном PHP, который выдал страничку и исчез).

    Что на PHP можно реализовать объектно?
    • Поддержку каких-то протоколов (БД, почта, какая-нибудь внешняя веб-служба наподобие VK API или Mandrill).
    • Что-нибудь из предметной отрасли, что меняет своё состояние — например, генерация картинок, звуков, архивов, PDF…
    • Может, сделаешь какой-нибудь генератор страниц, который сначала собирает каркас страницы, а затем, в зависимости от настроек и целевого устройства, обращивает его HTML-кодом.
    Ответ написан
    Комментировать
  • Что должен знать веб-программист по администрированию?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. Уметь устанавливать lamp/wamp (шикарно, если вообще уметь установить все с нуля, отдельно apache/nginx отдельно php и подключить к веб серверу, отдельно *sql), но в принципе просто поднять рабочую конфигурацию под сайт - крайне полезно

    2. Обязательно иметь понимание о файловой системе (права доступа, как создать и где какие есть ссылки, точки монтирования)

    3. Уметь работать с удаленными файлами (ssh, ftp), чтобы понимать куда и как можно что-то залить

    4. Хорошо уметь посмотреть лог файл от ваших сервисов (например лог файл веб-сервера, чтобы понять что не так)

    Ну хотя бы так.
    Ответ написан
    3 комментария
  • Самый удобный редактор для веб-разработки?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Продукцию JetBrains пробовали? WebStorm, PhpStorm.
    Очень требовательные к железу (без 4-ядерного ЦП и >=4 ГБ ОЗУ и соваться нет смысла, тормозить будут), и вроде платные, но зато очень навороченные.
    Ответ написан
  • Как повысить квалификацию php-программисту?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Сделаны даже не по MVC.

    Могу открыть страшную тайну - большинство людей так делают, даже если называют это MVC.

    думая только о логике приложения, а не вспоминая какие именно функции мне нужны.

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

    Уверенные знания заключаются в понимании того, что вы делаете. Заучивать API глупо, сегодня оно одно - завра другое. Вам нужно только помнить что что-то такое есть и уметь составлять поисковые запросы. То чем вы пользуетесь каждый день и так в памяти отложится.
    Ответ написан
    Комментировать
  • Чем отслеживать логи?

    toxicmt
    @toxicmt
    кофаундер Хекслета
    Первый вариант.
    Писать не только в лог, но и подключить https://rollbar.com/ . Эта штука решает очень много вопросов и особенно легко встраивается если у вас какой-то распостраненный фреймворк. Так же умеет собирать инфу из логов через https://github.com/rollbar/rollbar-agent

    Второй вариант.
    https://www.elastic.co/products/logstash Это стандарт в индустрии. Умеет читать из кучи источников (поддерживает как опрос так и пуши), так и может писать в кучу выходов. Внутри можно делать различный парсинг и обработку. Логстеш не единственный, гуглите по log collectors.

    Третий вариант.
    Использовать облачные сервисы сбора логов https://www.loggly.com или https://logentries.com/
    Ответ написан
    1 комментарий
  • Защищить скрипт?

    @SergeyZelensky-Rostov
    разместить у себя на хостинге
    Ответ написан
    3 комментария
  • Где найти хорошие видеоуроки + литературу по WordPress??

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Ответ написан
    Комментировать
  • На чем писать клиент-сервер с 10 000+ онлайном и 36 000 000 запросов в час?

    romy4
    @romy4
    Exception handler
    сперва достигни ©
    апач такие нагрузки выдерживает если чо. а ещё можно и нужно балансер прикрепить, но потом.
    это вопрос в пустоту. ни инфы про то _сколько_ инфы должно передавать ни с каким интервалом и т.д.
    ящетаю делайте как-нибудь, а потом уже будете менять и модифицировать
    Ответ написан
    3 комментария
  • Прием платежей, без посредников?

    @dmitryKovalskiy
    программист средней руки
    Не хотите посредников? Ок, без проблем. Вам нужен договор на услуги эквайринга с каждой системой электронных денег, которые вы хотите на сайте, а также с банком предоставляющим услуги эквайринга банковских карт. По каждому такому договору вы обязаны будете пройти приемосдаточные испытания и на выходе получите нужные вам услуги с комиссией около 3%. Хотите меньше? Поднимайте оборот до миллионов в месяц, тогда может и снизят. Опять же - у каждой системы будет свой оборот и если по банковским картам вам за оборот и снизят комиссию, то по электронным кошелькам оборот может и не дотянуть. Добавьте еще разработку и внедрение страницы агрегирования всех этих приблуд, поддержку API каждой системы приема платежей в отдельности, а так же ежедневные сверки реестров по каждой платежной системе. Если вы считаете что вот вся эта работа стоит экономии в 2% - то вперед к победе коммунизма. Да и кстати - если вы физ.лицо, то ни одна организация с вами не будет заключать договора на поставку подобных услуг. Ни банки, ни вебманя никто... Физлицам дорога только в Яндекс.Кассу, Робокассу и иже с ними подобными.
    Ответ написан
    2 комментария
  • Что быстрее 10 запросов к файлам или 10 к базе?

    27cm
    @27cm
    TODO: Написать статус
    Что быстрее: спросить на тостере или проверить самому?
    Ответ написан
    1 комментарий
  • Почему принимается как массив, а не как объект?

    Я в Symfony не специалист, конечно, но судя по array=true в DocBlock - указано, что json_decode должен возвращать массив, а не объект.
    Ответ написан
    2 комментария
  • Как создать сайт вроде спрашивай.ру?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    "Самоучитель PHP".
    Также подойдет поучить разметку - Html, CSS, даже в первую очередь, если не знаете, что это.
    А затем уж PHP, там обычно все объясняется.
    Но не ждите быстрых результатов.
    Ответ написан
    Комментировать
  • Для чего учить язык javascript (кроме интерактива на сайтах)?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Javascript довольно сложный язык... Много нюансов, и неожиданностей в сравнении с C/C++.

    Нет.
    Ответ написан
    3 комментария
  • Каково реальное программирование на PHP и 1С?

    coderisimo
    @coderisimo
    Начинайте делать реальные проекты. Без амбиций. Просто начните с самого простого. По мере реализации поневоле будете двигаться вперед, получите опыт. Мне кажется один реальный проект стоит ста решенных задачек )
    Ответ написан
    Комментировать
  • Каково реальное программирование на PHP и 1С?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Собственно, вопрос, что мне делать?


    Продолжайте ничего не делать. Либо делайте чего-нибудь.

    p.s. 1С это путь в никуда, а PHP он разный. Можно клепать сайтики на всяких вордпрессах да магентах а можно писать web приложеньки, а для этого уже нужен неплохой уровень и понимание основ.
    Ответ написан
    22 комментария
  • Как лучше построить модуль Транзакции в symfony?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    0) Никаких TransactionBundle. Вы эту логику не сможете реюзать, а значит нет смысла делать бандл. Почитайте symfony best practice. У вас должен быть один AppBundle и все, больше ничего. Вы можете пытаться выносить какие-то части инфраструктуры, которая не привязана к бизнес логике в отдельные бандлы для последующего реюза, но бизнес логику приложения реюзать не выйдет.

    1) почитайте про event sourcing. Этот способ хранения данных идеален для платежных транзакций, собственно в банках и т.д. этот подход и используют десятилетиями, да даже та же база данных хранит лог транзакций.

    2) уберите flush их сервиса и вынесите его в контроллер. flush коммитит транзакцию в базу, и нам надо это делать когда мы завершили работу с оными а не "где-то посередине".

    3) оборачивать это добро в еще одну транзакцию глупо, потому что... доктрина и так сделает транзакцию. В любом случае по хорошему это надо делать в декораторе.

    4) call_user_func_array в вашем случае - пример плохого решения.

    5) по умолчанию persist использовать нужно только для тех сущностей, которые мы только что создали (в нашем случае - транзакция), либо тех которые мы явно вынули из unit of work (а у нас нет вызова $em->detach).

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

    7) сервисы менеджеры - отстой. Называйте сервисы нормально.

    8) вместо кучи сервисов можно ввести разные объекты транзакций. Например FundTransaction, IncomTransaction и т.д. У вас же в сервисах почти весь код дублируется. А так можно было бы всю логику с этими операциями сложить прямо в сущности.

    9) НИКАКИХ DIE! даже для дебага.

    public function transactionAction(Request $request)
    {
        $data = $request->request;
        $transactionDTO = new TransactionDTO(
             // вообще я бы тут просто ID пользователя возвращал... но я упорот по изоляции приложения от UI
             $this->get('security.token_storage')->getToken()->getUser(), 
             $data->get('sender_account_type'),
             $data->get('recipient_account_type'),
             $data->get('amount')
        );
        // с исключениями разберется фронт контроллер
        $this->get('app.transaction_processor')->process($transactionDTO);
        // вот теперь сохраняем изменения
        $this->get('doctrine.orm.entity_manager')->flush();
    
        return new Response(null, 201); // создали новую запись в журнале транзакций
    }


    class TransactionProcessor
    {
          private $transactionsRepository;      
    
          public function __construct(TransactionRepository $repository)
          {
               $this->transactionsRepository = $repository;
          }
    
          public function process(TransactionDTO $dto)
          {
                // create это статический метод фабрика у абстрактного класса Transaction
                // читать шаблон проектирования "абстрактная фабрика".
                $transaction = Transaction::create($dto->getSender(), $dto->getRecipient(), $dto->getAmount());
                
                $this->transactionsRepository->add($transaction);
          }
    }


    дальше мне по логике не понятно, почему у вас одна транзакция на двух человек, полюбому у sender-а будет один тип транзакции а у ресивера другой. Можно запомнить кому мы чего передавали и только.
    Ответ написан
    7 комментариев