С нами с 13.09.05
Сообщения: 747
Рейтинг: 478
|
Добавлено: 30/04/10 в 01:15 |
Ну, может она очень быстро пишет рабочий, но некрасивый код за малую корысть, вот и решил призвать к порядку через форум
|
|
|
|
С нами с 27.04.06
Сообщения: 72
Рейтинг: 20
|
Добавлено: 04/05/10 в 13:13 |
Ну видимо твоя кодерша "Настоящий программист"! Ибо:
1) Отступы - выделяете ли вы структуру программы?
Зачем? Каждый отступ, это 1 символ (Tab), или, 4 пробела, на которые некоторые редакторы заменяют знак табуляции! Это увеличивает размер файла, замедляя его загрузку в память!
2) Комментарии к собственному коду?
Конечно, PHP парсер вырезает коментарии, но он же не выполняет предкомпиляцию, как Java, а значит он выполняет это снова и снова при каждой загрузки файла, что явно сказывается на производительности кода!
3) SQL - select * from table where... или SELECT * FROM table WHERE... ?
Вообщето, в классике, ведущей свои корни из голого C, ничего кроме констант не должно быть в коде заглавными буквами. Если взять любой старый файлец на C, даже от тогоже Oracle, то там было все именно в виде "select * from ..."
4) Выносите код в include или всё подряд в одном файле?
На include и любые другие похожие операции тратитятся драгоценные милисекунды выполнения кода. Для повышения производительности лучше избегать их использования.
5) Объектно-ориентированное или структурное?
ООП - это просто модная игрушка, жрущая ресурсы в непомерных обьемах. Каждый обьект без свойств съедает несколько драгоценных байт памяти. А память - это ваши деньги! Настоящий программист всегда экономит память - экономит ваши деньги!
6) MVC это просто модно или действительно удобно?
Тесты оптимизаторов показали, что код, находящийся в одном большом файле выполняется PHP в несколько раз быстрее, чем в нескольких маленьких. Особенно, если используются акселераторы типа APC. По этому разбивать файлы еще и на Модель-Вью-Контроллер является не целесообразным. Кроме того, базовое правило программирования - "Бритва оккама" гласит - "Не надо плодить сущности без необходимости".
Кстати, имена переменных больше 4 символов, требуют больше памяти на каждые следующие 4 символа. Так что лучше написат $i =, чем $productLoopIndexBasicIterator =
Так что могу смело заключить, что твоя кодерша - ну настоящий программист! Остается лишь удивляться ее непризнанному гению, позволяющему ей разбираться в настолько оптимизированном коде. Кстасти, такой стиль кодинга называется "Индусские письмена" - это все равно, что Почерк Леонардо! ;)
|
|
|
|
no sign
С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403
|
Добавлено: 04/05/10 в 13:53 |
сделаю проще
просто кусок кода приведу мной самим написанного
а вы уж решайте
Код: |
#!/usr/bin/perl
use WWW::Mechanize;
use threads;
use threads::shared;
use Mysql;
$_host = "localhost";
$_db = "xxxxx";
$_ua = "xxxxx";
$_pw = "xxxxx";
my $myconn;
$myconn = Mysql->connect ($_host, $_db, $_ua, $_pw) or die ('Cannot connect');
$myconn->selectdb ($_db) or die ('cannot select db');
$select_sql = "SELECT url FROM urlb ORDER BY RAND() LIMIT 5";
$select_ex = $myconn->query ($select_sql);
my @page_urls;
while (@result = $select_ex->fetchrow())
{
push (@page_urls, $result [0]);
}
undef $myconn;
my %total_images:shared;
my %total_urls;
my $mech = WWW::Mechanize->new();
foreach $page_url (@page_urls)
{
$mech->get ($page_url);
@page_links = $mech->find_all_links ();
my $thread_cnt = 0;
foreach $page_link (@page_links)
{
next if $page_link->url_abs =~ /\.ico$/i;
next if $page_link->url_abs =~ /\.gif$/i;
next if $page_link->url_abs =~ /\.jpg$/i;
next if $page_link->url_abs =~ /\.png$/i;
next if $page_link->url_abs =~ /javascript/i;
next if $page_link->url_abs =~ /mailto\:/i;
next if exists ($total_urls {$page_link->url_abs});
$total_urls {$page_link->url_abs} = 1;
$thread = threads->new (\&image_parser, $page_link->url_abs, $thread_cnt);
$thread_cnt++;
}
$_->join for threads->list;
}
$myconn = Mysql->connect ($_host, $_db, $_ua, $_pw) or die ('Cannot connect');
$myconn->selectdb ($_db) or die ('cannot select db');
foreach $page_url (keys %total_urls)
{
$check_sql = "SELECT * FROM urlb WHERE url = " . $myconn->quote ($page_url);
$execute = $myconn->query ($check_sql);
$rownumber = $execute->numrows();
if ($rownumber == 0)
{
$insert_sql = "INSERT INTO urlb (url, lastaccess, lastcode, codecount, disabled) VALUES (" . $myconn->quote ($page_url) . ", NOW(), 200, 0, false)";
$myconn->query ($insert_sql);
}
}
foreach $image_url (keys %total_images)
{
($image_alt, $image_source_url) = split (/\#\$\#/, $total_images{$image_url});
$check_sql = "SELECT * FROM imageb WHERE imageurl = " . $myconn->quote ($image_url);
$execute = $myconn->query ($check_sql);
$rownumber = $execute->numrows();
if ($rownumber == 0)
{
$insert_sql = "INSERT INTO imageb (imageurl, imagedesc, imagehit, imagelh, sourceurl) VALUES (" . $myconn->quote ($image_url) . ", " . $myconn->quote ($image_alt) . ", 0, 0, " . $myconn->quote ($image_source_url) . ")";
$myconn->query ($insert_sql);
}
}
sub image_parser
{
my $page_url = @_[0];
my $thread_number = @_[1];
my $mech = WWW::Mechanize->new();
$mech->get ($page_url);
if ($mech->content_type ne "text/html")
{
return (0);
}
my @page_images = $mech->find_all_images ();
foreach $page_image (@page_images)
{
if (
$page_image->alt ne "" && $page_image->alt !~ /^http/ && $page_image->alt !~ /cannot be displayed/ && !exists($total_images{$page_image->url_abs}) && \
$page_image->width > 200
)
{
$total_images{$page_image->url_abs} = $page_image->alt . "\#\$\#" . $page_url;
}
}
}
|
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/05/10 в 15:54 |
Ronald Wild писал: |
UPD: Кстати, одноэска не самая хуевая вещь. Кто не верит, попытайтесь замутить управленческие дела, даже для небольшой фирмочки чисто на бэсте каком-нибудь
А для чикатил от программинга рекомендую писать все самим. На си, разумеется (а лучше на асме) |
Ну а нахуя вообще язык программирования там изобретать отдельный? Экспортируешь ядро через COM и потом хочешь на Вижуал Васике пиши, хочешь на перле с питоном.
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
|
Спонсор раздела
|