Pull to refresh
7
0
Игорь @TODOOM

User

Send message
Не согласен с предыдущим оратором. Атаки проходят не так тривиально. Сарказма тоже не разгялдел) Обычная рекламная статья, применяйте наш продукт и ваша защита будет безупречна" (с).

В целом любопытно, какими этапами проходила атака, и да, отчасти на больную мозоль давит… Мониторьте логи, даже если там обычно ничего не происходит. (Ну или доверьте это нашему ПО")
Вы уж извините меня php программеры, просто не часто в топиках встретишь java C# и питон програмеров. Хватит меня провацировать еще на минусы ))


Подписывайтесь на соответствующие «хабы».

тут вопрос в другом, Многие программеры которые считают себя гуру программерами редко пользуются форматированием кода. Редко считают что стандарты к ним относится. а использование IDE, подразумевает использование стандартных фишек IDE, и в следствие использование gofmt по умолчанию…


Многие? У Вас есть соответствующая статистика?
И да, считать себя «гуру» ничего не значит. Все решает: 1) знания; 2) опыт применения; 3) практика использования собственного опыта.\
И IDE — это всего лишь инструмент, и он способствует появлению джуниоров с замашками сеньора.
При чем тут форматирование кода и IDE? Во 1) форматирование кода определяется проектом/командой/требованиями: во 2) IDE (в качестве примера указанный PhpStorm || IntelliJ IDEA (что более верно)) как инструмент представляет функции автоформатирования (до сих пор кривого) с параметрами «по умолчанию» которые не являются стандартом (вопрос еще каким).

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


Множество? Откуда инфа?..
Предположим какой-то % использует. И что? Где логика? Лендинги — это в первую очередь «красота» (не случайно в кавычках, т.к. все мы знаем к чему приводят попытки искусственно повысить конверсию). Но, что за этим скрывается?

Давайте подумаем. Наверное бэкэнд, который должен вычислять конверсию для (???)… Точно! Чего угодно. Добро пожаловать за кулисы мат. фака.

но Php способен не только на Wordpress! А вообще php слишком молод для того чтобы по умолчанию принимали профилирование как по умолчанию. Любой платформе-технологии нужно какое то время чтобы понять что есть проблемы утечек, синхронизации потоков, утиной типизации и то что в принципе php придумывалось как Personal Home Page Tools. Этим и обусловлено недальновидность таких парадигм как потоки, утечки памяти и вещей которые не созданы чтобы умирать https://habrahabr.ru/post/179399/


Хватит читать всякий бред. Нет-нет, конечно, читайте! Это полезно. Но включайте мозг.
Мог бы вам поставить диагноз — хабродроб, но я не доктор.

Если вы разработчик, то примите факт — вы разработчик. Язык — это всего лишь инструмент.

Умейте пользоваться Вашим инструментом, в жизни пригодится.

К слову, не фанат wordpress, но это не означает, что он является чем-то «юродивым». Это всего-лишь CMS. Как бы сказал: «не умеешь использовать — иди дальше».
Статья написана 2 октября 2014 года.

По поводу суперглобалов, да API существует, однако и суперглобалы существуют. Автор предлагает полностью от них уйти, реализовав работу с ними только через API. «Выстрелить в ногу», даже начинающему разработчику будет намного сложнее.

По поводу PDO, да, нативные библиотеки дают больше функционала, но ведь можно было бы развить PDO до этого уровня, что бы PDO покрывал всевозможные хотелки. Тогда можно было бы уйти от нативных библиотек, и расширять работу своего проекта на несколько СУБД было бы легче. Так же благодаря этому, можно было бы склонять разработчиков к использованию связываемых переменных, с введением необязательной типизацией, и с удалением суперглобалов, можно было бы практически полностью забыть о существовании SQL инъекций.
«Все должны быть стандартизированы, чтобы только один OO API существовал.», речь идет об API для баз данных. В оригинале это звучит так «Everything should be standardized so that only one OO interface exists.».

Речь идет об API которое могло бы быть основано на PDO, расширяющее функционал PDO до уровня нативных драйверов (like mysqli, pgsql и т.д.). При этом необходимость в таких нативных драйверах отпадет сама собой. Тогда можно было бы не строить кучу абстракций в коде позволяющих запустить его в разными СУБД.

Что касается «слишком вольного» перевода, у вас всегда есть возможность сравнить его с оригиналом, если в моем переводе где-то присутствуют ошибки, либо он расходится с мнением и мыслью автора, я всегда с радостью приму любой отзыв\критику и исправлю свои ошибки.

Статью я перевел, потому что мне понравились мысли автора относительно того, каким автор видит будущее. И да, автор этой статьи Frank Karlitschek. (если не верить переводчику, можно заглянуть в оригинал, так же ссылка на оригинал представлена в переводе в двух местах)
Согласен, но тут скорее неявной ошибкой будет использовать:
while ($filename = readdir($handle)) { $files[] = $filename; }

И это не единственный пример, казалось бы о подобных вещах должен знать любой школьник junior, но все равно периодически встречается… Например тот же
empty($string);
В том ключе, когда разработчик рассчитывает, что он отфильтрует только false, '', и null.
По поводу выноса в отдельное API, вы о том, что бы скалярные типы вели себя как контейнерные классы? Если да, то подобное сейчас реализовано, правда в виде отдельной библиотеки, она позволяет регистрировать пользовательские классы как обработчики скалярных типов.

И тогда можно писать что-то вроде:
$str = 'Hello World!';
echo $str->length();// 12
$arr = $str->explode(' ');// $arr = ['Hello', 'World!'];

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

upd: пруф
Да, отзывают, вот ссылка на отозванное RFC Scalar Type Hinting With Casts и тайпхинтинг для возвращаемых значений PHP RFC: Return Type Declarations
Да, в ленте ваш пост опубликован целиком и это создает своего рода неудобства для тех, кого не интересует тематика вашего поста.

Выделите из вашего поста «содержательный анонс» и вставьте после него тег <habracut />, после этого в ленте будет отображаться только выделенный вами фрагмент. Заранее спасибо :)
Судя по активности автор успешно проигнорировал просьбу (или это так «задумано»), жаль
Занудство занудством, но я надеюсь pavelstaf все же спрячет пост. Зашел только потому, что устал пролистывать в ленте под гостем… Сорри
Немного не понятно, значит «Срезать углы» и добиваться совершенства (в совокупности с отсутствием боязни принятия решений) равнозначны?

По инфографике я «Избегающий», но в некоторых случаях «Искатель приключений», хотя ни один из трех портретов по моему субъективному мнению мне не подходят :)
Скорее интерфейс как конструкция языка обязывает разработчика реализовать все имеющиеся в нем методы. Необходимость в этом возникает, когда критична верная работа приложения. (Пусть лучше совсем не поднимется, чем отработает на половину).

Пример
Тест код:
interface Animals
{
	public function tease();

	public function play();
}

class Dog
{
	public function tease()
	{
		echo 'tease';
	}
}

class Cat implements Animals
{
	public function tease()
	{
		echo 'tease';
	}

	public function play()
	{
		echo 'play';
	}
}

class AnimalsController
{
	private $animal;

	public function __construct(Animals $animal)
	{
		$this->animal = $animal;
	}

	public function Run()
	{
		$this->animal->tease();
		$this->animal->play();
	}
}


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

Таким образом написанный на коленке код класса собаки (не реализующий интерфейс) вызовет ошибку:
PHP Catchable fatal error: Argument 1 passed to AnimalsController::__construct() must implement interface Animals, instance of Dog given

А если разработчик пишет код к np++ и забыл описать реализацию одного из методов, но привязал интерфейс:
class Dog extends Animals


то все равно работать не будет:
Fatal error: Class Dog cannot extend from interface Animals


В примере конечно использование интерфейса излишне, но в реальных системах, с большой кодовой базой интерфейсы практически незаменимы
Мое первое впечатление, что такой транспорт был бы удобен на экскурсиях, с электронным экскурсоводом. Спокойно едет по заранее составленному маршруту, и рассказывает о достопримечательностях, конечно охват будет небольшой, но так можно спокойно отдыхать :)

И деток катать по парку тоже удобнее :)
Мне удобнее работать на с 104 клавишами, ничего лишнего, и достаточно эргономично.
Вспомнилось, про доп клавиши на все случаи жизни:
image
На прошлой работе была genius клавиатура с кнопкой power справа от Enter, при случайном нажатии успевал открыть notepad++ (если не было запущено ничего «сохраняющегося») и изменять его, пока система пыталась завершить остальные процессы и доходила до notepad++ на запрос о сохранении просто нажимал «отмену», это автоматически останавливала процесс выключения ПК
За ночь цикл быстрого/медленного сна повторяется от четырёх до пяти раз. Продолжительность каждой последующей фазы увеличивается. Наиболее ясные и легко запоминающиеся сны, скорее всего, снятся во время последних циклов, которые по времени приходятся на период с шестого по восьмой час сна.

ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B7%D0%B0_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE%D0%B3%D0%BE_%D1%81%D0%BD%D0%B0

Скорее всего пробуждение происходит в фазу медленного сна, отсюда и отсутствие воспоминаний о снах ночью. В то же время, от яркого сновидения можно проснуться через 5 минут после пробуждение или через пару часов посреди ночь, за жизнь всякое бывает… А иногда и засыпается от сна (засыпая начинаешь видеть сон, и он медленно тебя заволакивает в пучину ночи)
Около года назад, полностью ушел от сис.админства в разработку. С тех пор несколько раз снились схожие сны, в которых я читаю исходный код своей жены, вижу классы, методы, и пытаюсь их отладить, но не могу понять есть ли в результатах работы ошибка или нет. Иногда пытаюсь вспомнить идеологические принципы «чистого кода» и понять что тут можно отрефакторить и как повысить легкость кода… После этого просыпаюсь и минут 5 пока сон еще не ушел, не могу понять куда делась IDE и как теперь работать :) До тех пор пока мой мозг медленно просыпаясь не вспоминает, что она же моя жена, одна один целый и не делимый объект, и ее нельзя разобрать ни на классы ни на методы, и нельзя никак оддебажить… )
Есть еще одна «схема», работодатель принуждает работников открывать ИП, и заключает с ними договор оказания услуг (естественно устный). И тогда работник вообще перестает быть защищенным ТК (да и без письменного договора я так понимаю и в любом другом юридическом смысле слова защищенным). Подобная схема никому не встречалась? К автору статьи вопрос, на сколько легальна данная схема?

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity