• Как лучше изменять php-файлы на рабочем проекте?

    @xtreme
    Снимаю порчу по SSH :)
    Когда заливаете через CMS, файл по сути заливается во временный файл, а затем происходит move, который, в случае, если временный файл и целевой находятся на одном разделе файловой системы является атомарным (т.е. либо в один момент времени это старый файл, либо новый), либо, если происходит move между разделами - все равно происходит очень быстро.
    В случае, когда вы заливаете по ftp - сначала удаляется старый файл, т.е. он становится недоступным, а затем уже начинает подливаться новый. В этот момент и происходит "лажа".
    Выходов несколько:
    - про первый (не сказал бы, что он очень простой, но все равно довольно эффективный), вам уже написал D' Normalization во втором пункте.
    - второй - разливать файлы не по фтп, а, допустим, с помощью rsync из некоей директории, куда вы уже заливаете по ftp. То бишь - залили, проверили, что ничего больше заливать не надо - запустили на сервере rsync из этой директории в продакшн. rsync также копирует различающиеся файлы сначала во временный файл, а затем "мувит" на постоянное место.
    - третий - может быть с косяками, использовать, например, opcache в PHP и выставить в параметрах opcache не трогать файл, пока он не состарится, например, на несколько секунд. Секунды определяются эмпирически, в зависимости от скорости вашей заливки.
    - четвертый... а фиг знает, придумать можно много всего. Например, хранить файлы в SVN или GIT-репозитории, и по commit/push запускать post-hook, который, например, будет синхронизировать файлы тем же rsync или использовать какой-нибудь Jenkins... масса вариантов, главное не трогать самому файлы продакшна.
    Ответ написан
    Комментировать
  • Как лучше изменять php-файлы на рабочем проекте?

    Denormalization
    @Denormalization
    Ой насоветовали..
    Существует 2 простых варианта апдейта:
    1) Вешаем плашку "Усё пропало. Мы на ремонте.", и пока пользователи в шоке - делаем апгрейд.
    2) Учимся использовать симлинки. В соседней папке разворачиваем обновленный проект, и ловким движением руки переключаем симлинк на другую папку.

    Если есть много всяких "страшных" способов, но эти два наиболее просты и эффективны.
    Ответ написан
    Комментировать
  • Правильный frontend?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Туториал по Grunt: nano.sapegin.ru/all/grunt-0-4
    Когда все настроите поймете что писать на LESS/SASS не сложнее чем на чистом CSS, так как грунт сделает всю фоновую работу по конвертации в CSS за вас.

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

    Так же порекомендую вот эту тему: Какие есть практические курсы\уроки по html5 + css3 + javascript?
    Ответ написан
    6 комментариев
  • Как определить, содержит ли url определенное слово?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    1. Location.href
    2. Проверка строки регуляркой, например с помощью test
    Ответ написан
    Комментировать
  • Как протестировать добавление элемента в список C#?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вы не можете начать тестировать только потому, что Вы решили сначала написать код, а только потом его тестировать. Это неверно! Когда принимается решение писать код, нужно хотя бы где-то описать его задачу. TDD почти один в один взяли подход от математиков. У математиков тоже есть "Дано" - это аналог SetUp и "Нужно сделать" - это аналог вашего тестируемого кода, т.е. то что Вы реализуете и "Чтобы удовлетворяло условиям...." - Это очень похоже на Assert.

    Откиньте Ваш код, как будто Вы его еще не написали. Прочитайте формулировки нескольких мат.задач. Посмотрите их стилистику. Как они оформляют мысли при изложении сути задачи. И попробуйте следовать точно также! То есть опишите вашу программерскую задачу до начала решения, как это делают математики.

    /Offtop:
    Рекомендую Вам выписать возможные случаи при добавлении элемента в список. К примеру:

    Позитивные случаи:
    * Добавить нормальный элемент;
    и т.д. и т.п.

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

    Denormalization
    @Denormalization
    Часто сталкиваюсь с такими людьми. Это "программисты поневоле", как я их называю.
    Этим людям не интересно программирование как таковое, им интересна их зарплата.

    Обычно такие "программисты" заучивают базу + небольшой объем типичных решений, и с этими знаниями набиваются в работники. Они просто не хотят ничему учиться, так как им неинтересна эта область.
    С ними сложно что-то сделать. Сколько им не вдалбливай, они не станут от этого умнее, и будут так же продолжать тупить на нестандартных задачах.

    Если вы хотите заставить их нежные мозги шевелиться - ни в коем случае не давайте им решения.
    Пусть думаю сами, пусть ищут решение. Можно лишь давать наводки в какую сторону копать, но ни в коем случае нельзя делать так:
    В итоге описание задач сводится к полному написанию алгоритма решения, включая названия методов и переменных, а иногда и простая диктовка кода.

    Когда вы рассказываете им решение задачи - они ничему не учатся. Они тупо заучивают очередное решение, возможно даже не вникая в его суть.

    Заставляйте таких людей ДУМАТЬ. Задавайте наводящие вопросы.
    Пусть лучше они сделают кривое решение, которые вы потом заставите их переделывать, но у них в голове останутся хоть какие-то знания.
    Ответ написан
    15 комментариев
  • Какой учебник по MFC вы можете посоветовать?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Гробовщик И. Ф. Лопата А. Ю. Как закапывать мертвые технологии, чтобы тимлид не узнал.

    Если серьезно, посмотрите книги за авторством Кейт Грегори. Все очень подробно изложено.
    Ответ написан
    Комментировать
  • Какой учебник по MFC вы можете посоветовать?

    @vilgeforce
    Раздолбай и программист
    Могу посоветовать не использовать MFC вообще как слишком путанную "технологию". Лет 15 тому назад, когда Qt, GTK, и прочие только еще появлялись, MFC имел смысл. Сейчас, IMHO, не стоит тратить время на его изучение, если вы четко не осознаете зачем он вам.
    Ответ написан
    6 комментариев
  • Почему созданные переменные не равные нулю в c++?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Не инициализированная переменная не обязана быть равна нулю.
    Да по логике как-бы должна но не обязана.
    Ответ написан
    Комментировать
  • Как минимизировать нагрузку на сервер для чата на ASP.NET MVC с SignalR?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Не инстанс контекста, а не самой БД - разные вещи!
    Используй dependencyInjection и переиспользуй инстанс контекста БД в каждом последующем контроллере, подойдет NInject.
    Где хостится сервер? IIS? Katana? Если IIS, то стоит помнить про то, что пул может убиваться, соответственно объекты не вечные, в отличие от self-hosted.

    Чтобы минимизировать нагрузку и не завязываться на БД стоит продумать кэш в оперативной памяти, продумать сценарии рефреша страницы и подгрузки недавней истории. И, конечно же, корректно использовать entity для чтения (Не трэкать всё подряд) и записи (вставка пачками - bulkinsert по таймеру, если требуется ну очень много вставок).
    Ответ написан
    3 комментария
  • Что должен знать junior С#?

    Nipheris
    @Nipheris Куратор тега C#
    корпоративные приложения

    Поучите голый ADO.NET и какую-нибудь ORM-ку, да хотя бы EF. Еще можете хотя бы начать ASP.NET, вероятность попасть на него на первой работе достаточно высокая.

    финансы, банковская сфера

    Подтяните теорию по реляционным БД. Ведь какие финансы без транзакций!) Вы должны хотя бы знать о таких понятиях, как изоляция транзакций, представлять в общих чертах как на SQL можно сделать какую-нибудь выборку с агренированием. Никто конечно в здравом уме не даст джуниору непосредственный доступ к сколь-либо значащим данным, отражающим реальные денежные балансы, но ваша осведомленность пойдет вам на пользу, иначе рискуете клепать интерфейсики ближайшие несколько лет. А, ну да, выясните, почему нельзя вот так считать проценты по кредиту:
    float interestRate = 0.13 // ставка
    float interestSum = interestRate * sum;


    геймдев

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

    И еще для всех направлений: станьте более-менее самостоятельным в вопросах деплоя. Вы должны в общих чертах представлять, что находится внутри дотнетовской сборки, как работает версионность и что может пойти не так. Ну и про NuGet я надеюсь вы уже знаете.
    Ответ написан
    1 комментарий
  • Как преобразовать сторку с математическим выражением?

    function runTest(str) {
      var args = str.split('=');
      return (new Function('', 'return ' + args[0] + '===' + args[1] +';'))();
    }
    
    runTest('4 * 4 = 16');  //true
    Ответ написан
    Комментировать
  • Почему в шаблонизаторах используются двойные фигурные скобки?

    @GreatRash
    Чтобы не путать с конструкциями языка.
    Ответ написан
    Комментировать
  • Почему в шаблонизаторах используются двойные фигурные скобки?

    e_svirsky
    @e_svirsky
    Web Developer
    По-моему причина очевидно - одинарные скобки будут конфликтовать например с JS-ом.
    а двойные открывающие врядли где используются. бывает такое что шаблонизаторы конфликтуют (например symfony2 и в angularJS). В этом случае к примеру энгуляр поддерживает настройку произвольных символов для шаблонизаторов.
    Ответ написан
  • Почему в шаблонизаторах используются двойные фигурные скобки?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Внезапно, потому, что одинарные фигурные скобки имеют особый смысл во многих языках программирования.
    Ответ написан
    6 комментариев
  • Документирование кода. Правильно ли я делаю?

    iDokuro
    @iDokuro
    Тугодум
    А я вот не люблю документированный код. Если код написан хорошо и человек который читает его не тупой - всё понятно.

    Да и как-то не красиво смотрится документированный код, ужс как не нравится)
    Хотя это лично моё мнение.
    Ответ написан
    4 комментария
  • Как преобразовать число в строку?

    @ldvldv
    Комментировать
  • С чего начать изучение C#?

    ImmortalCAT
    @ImmortalCAT
    C# loving
    троелсена почитай
    затем Рихтера
    а дальше всё jun в шляпе
    Ответ написан
    1 комментарий
  • С чего начать изучение C#?

    NTP
    @NTP
    Алфавитный быть во всем должен порядок!
    Если учиться программированию, то следует начать с банальной математики и теории алгоритмов, далее уже заниматься дискреткой, матаном и углубленным изучением целевых ОС. Все идеи реализовывать согласно синтаксису выбранного языка, который в должной мере изучается где-то за неделю-две.
    Ответ написан
    Комментировать
  • Может кто посказать правильную формулу?

    27cm
    @27cm
    TODO: Написать статус
    (chf / kzt) = (chf / rub) / (kzt / rub)
    Ответ написан
    Комментировать