Pull to refresh

Comments 53

Хочу заметить, что то нарушает копирайт facebook. Они уже начали рассылать официальные обращения убрать код к авторам блогов, в которых размещён этот код.
Думаете, они до сюда доберутся? ;)
Через google можно найти всех сразу:

http://www.google.com/search?q=%22%2Flib%2Fsecurityq.php%22
Да и читать код в таком виде крайне не удобно.
А чего в нем интересного? Без остальных исходников он бесполезен.
А вдруг там есть system($_GET['super_hidden_backdoor']); ? :)
Интересного, там много, с точки зрения организации кода. Мне допустим было интересно посмотреть как разбили на модули, и есть ли MVC. Какой стиль программирования у "гигантов".
Стиль так себе.
UFO just landed and posted this here
Очень жаль, что «лучшии PHP-программисты мира» до сих пор пользуются функциональным подходом в программировании.
Я сам сейчас также пишу. Я был рад, что я не один. Хотя жду книжучку от SoftTime по ООП, чтобы тоже понять всю прелесть ООП.
UFO just landed and posted this here
Возможно, это сделано для увеличения производительности
а чем функциональный подход плох?
Как вы себе представляете поддержку большого проекта где все функции в одной области видимости (вобщем написано без ООП или хотябы неймспейсов). Это просто большая помойка.
Карамба! Ладно, ладно. Честно говоря, я не разбираюсь в подходах и не могу уверенно утверждать где функциональный подход, а где нет; не думаю, что когда все в одной куче --- это функциональный подход, все-таки это не очень удобно для программистов.

Там, где все в одной куче и ничего не разобрать --- там вообще подхода нет никакого.
Судя по успеху как то поддерживают.

Хотя код ужасный. Не верю что это их.
имелось в виду "процедурным подходом"? Функциональный подход ничем не хуже ООП, а в некоторых случаях и гораздо лучше.
Хм, помоему, это ужасно - все в перемешку, сплошные if и else, циклы... Наверное, ООП спас бы «лучших PHP-программистов мира» :) Хотя, не мне судить, может быть им так легче эфективнее.
Странно, заметил я у себя такую особенность - чем больше смотрю на PHP-код (в особенности этот), тем больше мне нравится Python.
Можно подумать что в питоне подобную гадость не накодить. Разве что смотреться будет красивее за счет отсупов.
Самый бесполезный исходник, который я когда либо видел.
UFO just landed and posted this here
Этот пример обычно используется в учебных пособиях, где он небесполезен.
>так что на чёрном рынке вы можете без проблем купить клон того же Facebook за $200.
И как же это сделать? Что-то из профиля на блогспоте этого не видать.
UFO just landed and posted this here
Вы еще молодой, еще все спереди :)
Нет уж, спасибо :)

Вообще конечно есть PHP-код куда более ужасный. Жаль, что его слишком много...
Даже не представляю, сколько нужно программеров, чтобы тащить такое чудо. Я бы поседел на пятый день работы над таким кодом :(
> код одного из самых успешных проектов Веб 2.0
:) вот так сегодня на кухне посидели и решили "не успешный" :)
UFO just landed and posted this here
У facebook'a неслабая нагрузка, а работает.
UFO just landed and posted this here
уже который год работает :)
1. Я насчитал всего ли 25 инклюдов - это вполне реальное количество. Бывает и по 100 и по 200 в итоге - и неичего работает.
2. Если бы вы присмотрелись, то уведели бы что кэширование там есть.
UFO just landed and posted this here
самое интересное что ничего плохого по большому счету в этом нет. т.е. в такой ситуации нет недовольных:
а) программист - он получает свои деньги, пишет плохой, но понятный ему код, может быть он и самнедоволен своим кодом, но если он пишет - значит его это устраивает
б) пользователи продукта - им вообще пофиг какой там код - контора поставит n-ный сервак, и сколько там инклюдов пользователям уже не будет важно
в) контора - на первый взгляд как раз им меньше всего выгодно такое положение дел, но... судя по капитализации того-же facebook их это совершенно не волнует. не волнует то что этот код требует бОльших мощностей, не волнует то что его сложнее повторно использовать. единственное что здесь важно - это скорость разработки в самом начале и возможность поддерживать (хотя-бы и с большими затратами) впоследствии

а писать код "писали код, потому что им это нравилось и было очень неплохо, если за это платили", это хорошо, но это непрофессионально (хотя это вполне работает в Open Source, там действительно люди заботятся о качестве кода, но это немного другая тема)
Ребят, да вы что? какие обращения к дискам? ОС кеширует частоиспользуемые файлы, к которым обращаются, таким образом даже если каждый файл по киллобайт 50 то 20 - это около 1 мб, это все довольно удачно лежит в памяти и подгружается мгновенно. А если учитывать что данные куски инклудятся в большенстве их сценариев. Так что говорить о "тяжелости комманыд инклуд" это глупо.
UFO just landed and posted this here
-n количество запросов
-с количество конкурентных(одновременных) запросов

исходник:
/* include_once 'a.php';
include_once 'b.php';
include_once 'c.php';
include_once 'd.php';
include_once 'e.php';
include_once 'f.php';
include_once 'g.php';
include_once 'h.php';*/

function a(){
echo 'a';
}

function b(){
echo 'b';
}

function c(){
echo 'c';
}

function d(){
echo 'd';
}

function e(){
echo 'e';
}

function f(){
echo 'f';
}

function g(){
echo 'g';
}

function h(){
echo 'h';
}

a();b();c();d();e();f();g();h();
?>

результаты без include_once:
[timon@localhost ~]$ ab -n5000 -c5 http://localhost2/
Server Software: Apache/2.2.8
Server Hostname: localhost2
Server Port: 80

Document Path: /
Document Length: 8 bytes

Concurrency Level: 5
Time taken for tests: 6.403327 seconds
Complete requests: 5000
Failed requests: 0
Write errors: 0
Total transferred: 990198 bytes
HTML transferred: 40008 bytes
Requests per second: 780.84 [#/sec] (mean)
Time per request: 6.403 [ms] (mean)
Time per request: 1.281 [ms] (mean, across all concurrent requests)
Transfer rate: 150.86 [Kbytes/sec] received

c include_once:
[timon@localhost ~]$ ab -n5000 -c5 http://localhost2/
Server Software: Apache/2.2.8
Server Hostname: localhost2
Server Port: 80

Document Path: /
Document Length: 8 bytes

Concurrency Level: 5
Time taken for tests: 4.786561 seconds
Complete requests: 5000
Failed requests: 0
Write errors: 0
Total transferred: 990000 bytes
HTML transferred: 40000 bytes
Requests per second: 1044.59 [#/sec] (mean)
Time per request: 4.787 [ms] (mean)
Time per request: 0.957 [ms] (mean, across all concurrent requests)
Transfer rate: 201.82 [Kbytes/sec] received

apc отключен, после каждого теста делался httpd_restart и echo 1 > /proc/sys/vm/drop_caches

вопросы есть? :)
p.s. для тех кто не умеет читать цифирьки, с include на 25% быстрее
UFO just landed and posted this here
Мало того, что ОС кеширует, так еще и PHP кеширует, причем не исходники, а итоговый байт-код.
> Раньше люди писали код...
Раньше — это как именно давно?
Да ну. Инклуды лучше, чем весь код в одном файле. Разделённый код легче читать, легче обновлять. А замедления от него, особенно если стоит тот же Зенд Оптимайзер, не почувствуешь особо. Всё кешируется.

Что же касается вообще ситуации с тем, что кодер делает, чтобы платили, то тут ничего не поделаешь. Если кодер начнёт гикствовать с оптимизацией, то не уложится в сроки. Может вообще давайте всё на асме писать, нэ?

Лично я сейчас всё ещё пытаюсь писать красивый код, чтобы не было стыдно. Но реалии жизни ведут к противному.
UFO just landed and posted this here
не считаю себя хорошим программистом, но честное слово, испытываю отвращение.
даже сам, задумываясь о последствиях, переписывал свои классы по 10 раз, чтоб все было максимально ясно и функционально.
могли бы и опытных нанять...
Забавный код. Функциональный кодинг, плюс волшебные названия функций. check_and_fix_broken_emails($user) особенно порадовала.

Хотя ведь работает, а значит здорово. И, наверняка, работает быстрее, чем ежели было объектным.

Хотя та же викимедия объектна, и ничего страшного.
if ($orientation) {
if ($post_leave_orientation) {
orientation_update_status($user, $orientation, 2);
notification_notify_exit_orientation($user);
dirty_user($user);
redirect('home.php');
} else if (orientation_eligible_exit(array('uid'=>$user)) == 2) {
orientation_update_status($user, $orientation, 1);
notification_notify_exit_orientation($user);
dirty_user($user);
redirect('home.php');
}
}

Чорт, эпичный код :)
Шокед)))
Индийский код, 100%!
непонятно, зачем юзеров пачкают.

Хотя, вообще не могу понять, что этот кусок делает :)
UFO just landed and posted this here
Sign up to leave a comment.

Articles