Реклама на сайте Advertise with us

Опрос среди коллег - програмеров

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 13.09.05
Сообщения: 747
Рейтинг: 478

Ссылка на сообщениеДобавлено: 30/04/10 в 01:15       Ответить с цитатойцитата 

Ну, может она очень быстро пишет рабочий, но некрасивый код за малую корысть, вот и решил призвать к порядку через форум icon_mrgreen.gif

0
 



С нами с 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 =

Так что могу смело заключить, что твоя кодерша - ну настоящий программист! Остается лишь удивляться ее непризнанному гению, позволяющему ей разбираться в настолько оптимизированном коде. Кстасти, такой стиль кодинга называется "Индусские письмена" - это все равно, что Почерк Леонардо! ;)

0
 

no sign

С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403

Ссылка на сообщениеДобавлено: 04/05/10 в 13:53       Ответить с цитатойцитата 

сделаю проще icon_smile.gif
просто кусок кода приведу мной самим написанного
а вы уж решайте

Код:

#!/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;
    }
  }
}

skype:megaarachno

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/05/10 в 15:54       Ответить с цитатойцитата 

Ronald Wild писал:

UPD: Кстати, одноэска не самая хуевая вещь. Кто не верит, попытайтесь замутить управленческие дела, даже для небольшой фирмочки чисто на бэсте каком-нибудь
А для чикатил от программинга рекомендую писать все самим. На си, разумеется (а лучше на асме) icon_smile.gif


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

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »