Comments 53
Хочу заметить, что то нарушает копирайт facebook. Они уже начали рассылать официальные обращения убрать код к авторам блогов, в которых размещён этот код.
0
Да и читать код в таком виде крайне не удобно.
0
Очень жаль, что «лучшии PHP-программисты мира» до сих пор пользуются функциональным подходом в программировании.
+2
Я сам сейчас также пишу. Я был рад, что я не один. Хотя жду книжучку от SoftTime по ООП, чтобы тоже понять всю прелесть ООП.
0
Возможно, это сделано для увеличения производительности
0
а чем функциональный подход плох?
0
Как вы себе представляете поддержку большого проекта где все функции в одной области видимости (вобщем написано без ООП или хотябы неймспейсов). Это просто большая помойка.
0
Карамба! Ладно, ладно. Честно говоря, я не разбираюсь в подходах и не могу уверенно утверждать где функциональный подход, а где нет; не думаю, что когда все в одной куче --- это функциональный подход, все-таки это не очень удобно для программистов.
Там, где все в одной куче и ничего не разобрать --- там вообще подхода нет никакого.
Там, где все в одной куче и ничего не разобрать --- там вообще подхода нет никакого.
0
Судя по успеху как то поддерживают.
Хотя код ужасный. Не верю что это их.
Хотя код ужасный. Не верю что это их.
0
имелось в виду "процедурным подходом"? Функциональный подход ничем не хуже ООП, а в некоторых случаях и гораздо лучше.
0
Хм, помоему, это ужасно - все в перемешку, сплошные if и else, циклы... Наверное, ООП спас бы «лучших PHP-программистов мира» :) Хотя, не мне судить, может быть им так легче эфективнее.
Странно, заметил я у себя такую особенность - чем больше смотрю на PHP-код (в особенности этот), тем больше мне нравится Python.
Странно, заметил я у себя такую особенность - чем больше смотрю на PHP-код (в особенности этот), тем больше мне нравится Python.
+1
Самый бесполезный исходник, который я когда либо видел.
0
>так что на чёрном рынке вы можете без проблем купить клон того же Facebook за $200.
И как же это сделать? Что-то из профиля на блогспоте этого не видать.
И как же это сделать? Что-то из профиля на блогспоте этого не видать.
0
UFO just landed and posted this here
В жизни не видел более ужасного кода.
0
> код одного из самых успешных проектов Веб 2.0
:) вот так сегодня на кухне посидели и решили "не успешный" :)
:) вот так сегодня на кухне посидели и решили "не успешный" :)
0
UFO just landed and posted this here
У facebook'a неслабая нагрузка, а работает.
0
1. Я насчитал всего ли 25 инклюдов - это вполне реальное количество. Бывает и по 100 и по 200 в итоге - и неичего работает.
2. Если бы вы присмотрелись, то уведели бы что кэширование там есть.
2. Если бы вы присмотрелись, то уведели бы что кэширование там есть.
0
UFO just landed and posted this here
самое интересное что ничего плохого по большому счету в этом нет. т.е. в такой ситуации нет недовольных:
а) программист - он получает свои деньги, пишет плохой, но понятный ему код, может быть он и самнедоволен своим кодом, но если он пишет - значит его это устраивает
б) пользователи продукта - им вообще пофиг какой там код - контора поставит n-ный сервак, и сколько там инклюдов пользователям уже не будет важно
в) контора - на первый взгляд как раз им меньше всего выгодно такое положение дел, но... судя по капитализации того-же facebook их это совершенно не волнует. не волнует то что этот код требует бОльших мощностей, не волнует то что его сложнее повторно использовать. единственное что здесь важно - это скорость разработки в самом начале и возможность поддерживать (хотя-бы и с большими затратами) впоследствии
а писать код "писали код, потому что им это нравилось и было очень неплохо, если за это платили", это хорошо, но это непрофессионально (хотя это вполне работает в Open Source, там действительно люди заботятся о качестве кода, но это немного другая тема)
а) программист - он получает свои деньги, пишет плохой, но понятный ему код, может быть он и самнедоволен своим кодом, но если он пишет - значит его это устраивает
б) пользователи продукта - им вообще пофиг какой там код - контора поставит n-ный сервак, и сколько там инклюдов пользователям уже не будет важно
в) контора - на первый взгляд как раз им меньше всего выгодно такое положение дел, но... судя по капитализации того-же facebook их это совершенно не волнует. не волнует то что этот код требует бОльших мощностей, не волнует то что его сложнее повторно использовать. единственное что здесь важно - это скорость разработки в самом начале и возможность поддерживать (хотя-бы и с большими затратами) впоследствии
а писать код "писали код, потому что им это нравилось и было очень неплохо, если за это платили", это хорошо, но это непрофессионально (хотя это вполне работает в Open Source, там действительно люди заботятся о качестве кода, но это немного другая тема)
0
Ребят, да вы что? какие обращения к дискам? ОС кеширует частоиспользуемые файлы, к которым обращаются, таким образом даже если каждый файл по киллобайт 50 то 20 - это около 1 мб, это все довольно удачно лежит в памяти и подгружается мгновенно. А если учитывать что данные куски инклудятся в большенстве их сценариев. Так что говорить о "тяжелости комманыд инклуд" это глупо.
0
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% быстрее
-с количество конкурентных(одновременных) запросов
исходник:
/* 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% быстрее
0
Мало того, что ОС кеширует, так еще и PHP кеширует, причем не исходники, а итоговый байт-код.
0
> Раньше люди писали код...
Раньше — это как именно давно?
Раньше — это как именно давно?
0
Да ну. Инклуды лучше, чем весь код в одном файле. Разделённый код легче читать, легче обновлять. А замедления от него, особенно если стоит тот же Зенд Оптимайзер, не почувствуешь особо. Всё кешируется.
Что же касается вообще ситуации с тем, что кодер делает, чтобы платили, то тут ничего не поделаешь. Если кодер начнёт гикствовать с оптимизацией, то не уложится в сроки. Может вообще давайте всё на асме писать, нэ?
Лично я сейчас всё ещё пытаюсь писать красивый код, чтобы не было стыдно. Но реалии жизни ведут к противному.
Что же касается вообще ситуации с тем, что кодер делает, чтобы платили, то тут ничего не поделаешь. Если кодер начнёт гикствовать с оптимизацией, то не уложится в сроки. Может вообще давайте всё на асме писать, нэ?
Лично я сейчас всё ещё пытаюсь писать красивый код, чтобы не было стыдно. Но реалии жизни ведут к противному.
0
UFO just landed and posted this here
не считаю себя хорошим программистом, но честное слово, испытываю отвращение.
даже сам, задумываясь о последствиях, переписывал свои классы по 10 раз, чтоб все было максимально ясно и функционально.
могли бы и опытных нанять...
даже сам, задумываясь о последствиях, переписывал свои классы по 10 раз, чтоб все было максимально ясно и функционально.
могли бы и опытных нанять...
0
Забавный код. Функциональный кодинг, плюс волшебные названия функций. check_and_fix_broken_emails($user) особенно порадовала.
Хотя ведь работает, а значит здорово. И, наверняка, работает быстрее, чем ежели было объектным.
Хотя та же викимедия объектна, и ничего страшного.
Хотя ведь работает, а значит здорово. И, наверняка, работает быстрее, чем ежели было объектным.
Хотя та же викимедия объектна, и ничего страшного.
0
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');
}
}
Чорт, эпичный код :)
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');
}
}
Чорт, эпичный код :)
0
Это хорошая реклама, не более.
0
Sign up to leave a comment.
Исходники Facebook просочились в Сеть