• Могли бы вы поделиться хорошим техническим заданием на разработку сайта/веб-приложения?

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

    Так, например, если вы работаете с государственным или окологогосударственным заказчиком/исполнителем, весьма вероятно, вам придётся подготовить ТЗ в соответствии с требованиями ГОСТ-19 и 34 (в особенности ГОСТ 34.602-89 и ГОСТ 19.201-78), которые предполагают создание очень формальных и подробных документов.

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

    Для какой-нибудь дизайнерской разработки (стиль, лого, графика), когда велика изначальная неопределённость, что же требуется сделать, лучшим вариантом может являться вообще достаточно общий бриф.

    Резюмируя: определитесь с требованиями к ТЗ, а, отталкиваясь от них, уже можно искать какие-то варианты.
    Ответ написан
    Комментировать
  • SEO в 2019 это карго-культ? Или, всё-таки, стоит в своей компании держать опытного SEO-шника?

    Kadzi
    @Kadzi
    Ом
    Вот несколько тезисов:

    1. Один сеошник, как единица, очень ограничен на проекте, если нет поддержки со стороны дизайнера (не попуаса, рисующего прямоугольники, а дизайнера), редактора (или человека, разбирающегося ХОРОШО в нише), продавца данного товара/услуги если нужно и, программиста. Говоря проще: свою работу он выполнит, на нахрена оно надо, если все через ж и конверсия изначально режется кривой сборкой/дизайном и убогим текстом. Гонят трафик на неготовый ресурс.

    2. Рустам Байназаров приводит пример с сеошником и успешным кейсом: он пришёл, увеличил трафик, продажи выросли. Тут следует добавить вот что: многие смотрят на видимый результат. Например, пришел сеошник, трафика было 100, стало 300. Продаж было на 1 тысячу рублей, стало на 3 тысячи. Результат есть, но подобная работа в каком-то смысле не эффективна. Поясняю: например, данный специалист сделал это за полгода. Но как именно он это делал? Работал ли он в связке с вышеперечисленными в пункте 1 специалистами? Если нет, то результат такой работы посредственный, ведь за те же полгода можно было сделать еще условно 10 тысяч потенциальной прибыли.

    3.
    или сайт спокойно будет выходить в топы с нормальной технической оптимизацией сайта и контента?
    Тут следует понять вот что: техническая оптимизация тогда, когда проработаны остальные уровни лесенки. Сегодняшнее SEO выглядит как попытка сделать из табуретки диван, шлифуя, и приколачивая новые детали к ней. Это связано с непониманием тактик, стратегий и неправильного расчёта работ. И обсуждать нужно не ю-матьего-икс, не дизайн, не скорость загрузки страниц и не CMS, а бизнес-процессы, возможные каналы рекламы, и полезное действие

    4. Рональд Макдональд указал на то, что в найме сеошник делает не только сео. Это правда. Но давайте уточним пару деталей: эксперт сеошник это прежде всего хороший аналитик. Он не обязан знать веб-программирование глубоко. И давайте уже не будем считать сеошника директологом. Он хоть и может спокойно вести рекламные компании, но экспертизы у него разумеется будет меньше,чем у людей занимающихся только контекстной рекламой.

    Чистый SEOшник - последователь карго-культа.

    И конечно важен размер сайта. Одно дело, сеошник на сайт с сотней страниц, другое дело их 30 тысяч. Поэтому это тоже бред, что чистый сеошник умер. На большом проекте сеошник будет делать ТОЛЬКО SEO каждый день, каждый месяц, под руководством более опытного сеошника. Нужно рассматривать ситуации в частности. В зависимости от задач и объема можно выбирать: искать студию или брать в штат.

    Лично я за метод ресурса.

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

    SEO начало умирать в 2010 году. В конце 2019 это карго-культ.

    Это феерический бред, как и подобные комменты про сео. Никуда оно не делось, нигде оно не вымерло. Да, новых каналов для продвижения стало больше, да, трафик рассосался по разным площадкам. Но факт остается фактом: все ещё огромный пласт людей добираются до товара и услуги через органический поиск по огромному количеству ниш.

    5. И самый важный пункт. Так вышло, что встречается недопонимание среди сотрудников: начальница, которая жена учредителя наглая и бездарная, давящая на тех же сеошников, отбивая желание выкладываться; Девочки-маркетологи, решившие поиграть в маркетинг; Комнатные сумасброды дизайнеры и псевдоредакторы; Слабые и ленивые продавцы, не интересующиеся тем, что они продают; ЧСВ руководство, всё еще думающее, что решает тот, кто платит. И так далее и так далее и так далее.

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

    Это я всё к тому, что смотреть на ситуацию нужно более масштабно. А не на уровне тупого хайпа в стиле "ыыыы два ка 19, сео is die".

    некоторые мысли я описал тут:
    Как выбрать SEO компанию?
    Верно ли утверждение что любой сайт начинается с семантического ядра?
    Ответ написан
    4 комментария
  • Библиотека-генератор php классов (файлов)?

    IgorPI
    @IgorPI Автор вопроса
    Всё проще, чем я ожидал.

    На примере "Laravel"

    Файл app/Console/Commands/stubs/controller.stub

    <?php
    
    namespace DummyNamespace;
    
    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;
    
    class DummyClass extends Controller
    {
    	public $user;
    
    	/**
    	 * DummyClass constructor.
    	 */
    	public function __construct()
    	{
    		$this->middleware(['auth:api', 'role:admin|organizer|prof_organizer'])->only(['store', 'update', 'destroy']);
    
    		$this->user = \Auth::guard('api')->user();
    	}
    
    	/**
    	 * Display a listing of the resource.
    	 *
    	 * @return \Illuminate\Http\Response
    	 */
    	public function index()
    	{
    		//
    	}
    	
    	/**
    	 * Store a newly created resource in storage.
    	 *
    	 * @param  \Illuminate\Http\Request  $request
    	 * @return \Illuminate\Http\Response
    	 */
    	public function store(Request $request)
    	{
    		//
    	}
    
    	/**
    	 * Display the specified resource.
    	 *
    	 * @param  int  $id
    	 * @return \Illuminate\Http\Response
    	 */
    	public function show($id)
    	{
    		//
    	}
    	
    	/**
    	 * Update the specified resource in storage.
    	 *
    	 * @param  \Illuminate\Http\Request  $request
    	 * @param  int  $id
    	 * @return \Illuminate\Http\Response
    	 */
    	public function update(Request $request, $id)
    	{
    		//
    	}
    
    	/**
    	 * Remove the specified resource from storage.
    	 *
    	 * @param  int  $id
    	 * @return \Illuminate\Http\Response
    	 */
    	public function destroy($id)
    	{
    		//
    	}
    }


    Класс генератор
    <?php
    
    namespace App\Console\Commands;
    
    use Illuminate\Console\GeneratorCommand;
    use Symfony\Component\Console\Input\InputOption;
    
    class MakeController extends GeneratorCommand
    {
    	/**
    	 * The console command name.
    	 *
    	 * @var string
    	 */
    	protected $name = 'make:controller';
    
    	/**
    	 * The console command description.
    	 *
    	 * @var string
    	 */
    	protected $description = 'Create a new Controller resource class';
    
    	/**
    	 * The type of class being generated.
    	 *
    	 * @var string
    	 */
    	protected $type = 'Controller';
    	
    	/**
    	 * Get the stub file for the generator.
    	 *
    	 * @return string
    	 */
    	protected function getStub()
    	{
    		return __DIR__.'/stubs/controller.stub';
    	}
    
    	/**
    	 * Get the default namespace for the class.
    	 *
    	 * @param  string  $rootNamespace
    	 * @return string
    	 */
    	protected function getDefaultNamespace($rootNamespace)
    	{
    		return $rootNamespace."\\Http\\Controllers\\Api";
    	}
    }
    Ответ написан
    3 комментария
  • К чему может быть эта ошибка?

    egor_nullptr
    @egor_nullptr
    К чему может быть эта ошибка?

    К отладке.
    Ответ написан
    8 комментариев
  • Почему перевод через Yandex translate API намного хуже, чем обычный перевод через стандартную страницу переводчика?

    dr_foam_rubber
    @dr_foam_rubber
    Столкнулся с такой же проблемой. Вот, что ответила поддержка:
    Различие в переводах на сервисе и через API существует потому, что на сервисе используется гибридный перевод (нейроперевод + статистический фразовый), а в API — только статистический фразовый.
    В платной версии API Яндекс.Переводчика на платформе Яндекс.Облако используется такой же перевод, как и на сервисе.
    Подробнее об этом можно почитать тут: https://cloud.yandex.ru/services/translate
    Ответ написан
    Комментировать
  • Надежно ли использовать только is_numeric и is_int?

    bigton
    @bigton
    Web-программист
    1. Забудьте про $_GET/$_POST/$_SERVER/$_COOKIE, в PHP уже давно есть filter_input
    $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);

    Смотрите мануал https://www.php.net/manual/ru/function.filter-inpu... смотрите фильтры, опции, примеры.

    2. От SQL инъекций защищает https://www.php.net/manual/ru/mysqli.real-escape-s... непосредственно перед запросом.
    Ответ написан
  • Чем расшифровать зашифрованный порт?

    @imhuman
    Мне кажется, никак не зашифровано, это просто рандомные строки, которые определяют класс, отображающий порт. Посмотри в css, что за ними скрывается, может и найдешь.
    Ответ написан
    Комментировать
  • Реально ли хорош openlitespeed?

    @lossyy Автор вопроса
    Установил опенлайтспид, киберпанель, накатил вордпресс и премиум тему. Как раньше не старался, выходило в районе 6 сек загрузка сайта. Если совсем не стараться с оптимизацией то 12 сек. А тут вышло после установки 12 сек, потом после включения кеширования 2 сек. Пока что склонен считать, что удалось. Как накину реальный контент и несколько фото, то буду точно знать.
    Ответ написан
    1 комментарий
  • Как исправить потерянные таблицы innodb?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Комментировать
  • Переменная или define? Когда что использовать?

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

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

    Sanes
    @Sanes
    Никак. Если видео на экране, то уже масса способов его скопировать.
    Ответ написан
    Комментировать
  • Как максимально сильно сжать игру для тату?

    @rPman
    У вас только два варианта - либо кодируйте цветом High Capacity Color Barcode что даст вам примерно пятикратную оптимизацию по площади, либо размещайте код ссылку вместо самого кода, но это не так интересно, само собой.

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

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    Большая часть ресурсов - ситуативные (в основном это документации к конкретным библиотекам). Из более-менее часто используемого могу вспомнить:
    MDN, DevDocs и Schema.org, чтобы вспоминать забытое.
    Can I use, чтобы смотреть поддержку браузерами (+ doiuse).
    WAVE и regex101, чтобы проверять себя.
    В Browserhacks иногда полезно заглянуть.
    FontPair и Coolors - если нужно без дизайнера подобрать шрифты и цвета.
    Snazzy Maps, чтобы брать готовые цветовые схемы для карт.
    Cubic-bezier, чтобы наглядно делать кривые для простых анимаций.
    Google - если затупил.
    Noisli - для фонового шума.
    Cross Browser Testing, чтобы тестировать результат.
    Ответ написан
    3 комментария
  • Как в php разбить 12ти-значное число на определенные блоки?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Есть специально для этого в PHP функция sscanf() – разбирает строку по формату.

    $str = "111222772019"; // строка из БД
    
    list($unit, $employee, $serial, $year) = sscanf($str, "%3d%3d%2d%4d");
    // 3 цифры, 3 цифры, 2 цифры, 4 цифры
    
    printf("Unit: %d, man: %d, id: %d, year: %d<br/>", $unit, $employee, $serial, $year);
    // Unit: 111, man: 222, id: 77, year: 2019
    Ответ написан
    Комментировать
  • Сервис опроса для сайта?

    zoozag
    @zoozag
    Opencart
    Посмотрите
    Судя по наличию интеграций с сервисами рассылок и мессенджерами, должен уметь
    Ответ написан
    Комментировать
  • Что за проблема с регулярным выражением в Firefox?

    Lynn
    @Lynn
    nginx, js, css
    Firefox ещё не умеет такие выражения.
    https://bugzilla.mozilla.org/show_bug.cgi?id=1361876

    Воспользуйтесь каким-нибудь транспайлером
    https://github.com/tc39/proposal-regexp-unicode-pr...
    Ответ написан
    4 комментария
  • Какие аргументы для клиента при обновлении сайта (редизайн)?

    cyber_roach
    @cyber_roach
    UX дизайнер INEDIapps
    Важна цель редизайна, а не типографика, структура и прочее.
    Если вы четко обозначите клиенту например:
    - Я могу сделать дизайн так, чтобы в службу поддержки приходило вдвое меньше звонков
    - Я могу сэкономить вам на том-то - том-то порядка 1 млн в год перерисовав вот тут и вот тут.
    - Вот эта фича позволит утереть нос вашему основному клиенту
    и пр.
    Тогда ваши услуги купят сразу, а так просто не понимают чего вы хотите от них и что они получат (в цифрах в итоге)
    Определите цель дизайна ясно и четко с позиции бизнеса (а не дизайнера)
    Ответ написан
    Комментировать