Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012
Откуда: Херсон, Украина
Помог: 7 раз(а)
|
Здравствуйте программисты и другие воины это доблестного форума.
Суть вопроса такова: Расскажите про ваши подвиги, против лени и прочего кощунства,
о том, какие навыки вы приобрели, что посоветуете для новеньких с вопросом:
А что это, а как это делать?! Или что нужно знать, чтобы повторять ошибки, именно повторять, ведь программист, если не видит ошибку, он ведь быстро, не разберется, что где и как.
Ваши советы, наработки, и как вы докатились до такой жизни)
Начну с себя, ламера и лентяя. А вы судите, что хорошо, а что плохо.
Поехали...
1. Форматирование кода
Первые азы, при изучении HTML; да не буду, не нужно, и так мне понятно.
Чуть далее: Чёс затылка, с вытаращенными глазами.
При изучении CSS. Хорошо, это подвинуть, нажать TAB, здесь пробел,
очень хорошо, О как красиво.
При изучении PHP. Фигурную скобку здесь, фигурную скобку там, о бл..ь,
откуда третья взялась?!
И теперь немного кода:
CODE ( html):
скопировать код в буфер обмена
<!--HTML--> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Главная</title> </head> <body> <div id="wrapper"> <div id="header"> <div id="logo"> <a href="/"><img src="img/fon.png" width="50" height="50"></a> </div><!--logo--> <div id="title"> <h1>Название сайта</h1> </div><!--title--> <div id="g_menu"> <ul> <li>Главная</li> <li>Новости</li> <li>Обратная связь</li> </ul> </div><!--g_menu--> </div><!--header--> <div id="content"> <div id="left_bar"> <ul> <li>Главная</li> <li>Новости</li> <li>Обратная связь</li> </ul> </div><!--left_bar--> <div id="centr_bar"> <h2>Первое меню</h2> <p>Контент</p> </div><!--centr_bar--> <div id="right_bar"> <ul> <li>Главная</li> <li>Новости</li> <li>Обратная связь</li> </ul> </div><!--right_bar--> </div><!--content--> <div id="footer"> Все права защищены ©test.ua </div><!--footer--> </div><!--wrapper--> </body> </html>
Как видите с примера выше, код тщательно отформатирован, для нормально визуального воздействия. Каждый div-блок имеет закрывающий блок с комментарием идентификатора этого блока, что даёт визуально понять, где начинается блок и заканчивается. Между блоками существуют отступы, что тоже наглядно обеспечивает читабельность кода, и естественно применена табуляция. Где понятно, где родитель-элемент, а где дочерний элемент.
CODE ( htmlphp):
скопировать код в буфер обмена
body { background: #eee; } /*Javascript*/ while(i <= 50) { document.write(i + '<br>'); i++; // увеличение счетчика на 1 } if(a == 1) { document.wtite('Работает'); } /*PHP*/ while($i <= 50) { echo $i.'<br>'; i++; // увеличение счетчика на 1 } class New { function __construct() { } function __destruct() { } }
Как из примера выше видно, я форматирую фигурные скобки { }, везде одинаково, что удобно и привычно.
А не так, как раньше
if(a == 1)
{
document.wtite('Работает');
}
Бывает конечно, что if проверку пишу в одну строчку, вместе с фигурными скобками, если код проверки и действий слишком мал. Например.
if(a == 1) {document.wtite('Работает');}
CSS
Есть такая привычка ставить после определения правила пробел.
PHP & Javascript
Также привычка ставить, после запятой пробел. В SQL-запросе, в массивах и т.п.
Наглядно отделять код, например:
$myrow_data = array(
'otp' => 'Пошивай',
'ves' => '15кг',
'obiem' => '0.09',
'mesta' => '38'
);
Тоесть, каждая строчка, индекс массива и значение.
Например, SQL-запрос
$sql = "INSERT INTO $table
(id, title, main)
VALUES
('$id', '$title', '$main')";
Ладно, хватит. Поехали далее...
2. Комментирование кода.
Очень важный аспект в программировании, я считаю.
Изначально при изучении любого языка, комментировать код, нужно настолько,
чтобы понимать, что делает эта строка, что эта и т.д.
Далее...
Комментировать, нужно по-блочно. Этот код, выводит горизонтальное меню,
этот блок выводит список фирм, и так далее. Тоесть, при прочтении комментария,
явно становится понятно, что этот код делает.
И третий вариант, комментировать нужно настолько, насколько это должно быть
понятным тебе и другим программистам, коддерам.
Примеры комментариев)
<!--HTML--> однострочный
/*CSS*/ многострочный
//javascript однострочный
/*javascript */ многострочный
//PHP однострочный
#PHP однострочный
/*PHP*/ многострочный
Далее...
3. Явные имена в названиях, явно английскими литерами)
Любые переменные, константы, функции, классы, и имена файлов,
я называю своими именами. Незнаю, перевода!, лезу в онлайн-переводчик
и перевожу. Я не использую, транслитерацию с русского языка, по-крайней мере,
ранее я использовал, но сейчас, я приучил себя к этому,
давать явные имена, отображающие смысл, и точка.
А теперь, немного лирики. Я хватаю, понемногу практику, то там, то там. То в Javascript,
полез, то в PHP. Немного CSS, немного Photoshop. Очень мало времени.
Это наверно, моё хобби - ИТ.
Люблю экспериментировать. Беру простенький чужой скрипт, делаю с самого ноля почти тоже, меняю, практикую, и действия запоминаются, потом пишется из головы...
Что я хотел, ещё разобрать.
Как я подключаюсь к базе данных.
У меня есть файл в директории сайта(DENWER XD)
Называется, db_connect.php
В этом файле функция db_connect()
PHP:
скопировать код в буфер обмена
# Функция подключения к базе function db_connect() { 'localhost', // сервер 'login', // логин 'pass' // пароль ); 'name_database', // имя базы данных $db ); // Кодировка mysql_query ("set collation_connection='utf8_general_ci'"); } #################
В PHP-коде, когда я делаю проверку if на существование
переменных, а далее в теле запрос к базе данных, то я делаю например так:
Может, я неправильно делаю, в понятиях оптимизации, потому что при каждом
запросе я нагружаю сервер MYSQL, наверное. Но, я думаю, такой подход, обезопасит
от SQL-инъекций из адресной строки браузера. Может, я и неправ, поправьте меня.
Далее...
Кто-то же, открывал когда-нибудь исходный код Яндекса. Весь код в одну строчку.
Я, думал, как они это делают. Сначала думал, срезают регулярками, но потом понял,
что строка создается при построении. Какой CGI-язык они используют, я незнаю.
Однажды, я начал изучать функции PHP. И при моих экспериментах, я научился выводить в одну строку. Вот пример index.php
Как видно, в теле index.php всего лишь один include и 2 функции.
Первая, комментированная функция, это страница которая показывается пользователям,
когда сайт на тех. работах
А вторая, сама главная страница для вывода.
Ясно же ведь, чтобы показать, тех.работы функцию tech_work() нужно раскомментировать, а функцию html() закомментировать.
А теперь посмотрим файл функций:
CODE ( htmlphp):
скопировать код в буфер обмена
<?php # Страница ошибки или "Ведутся технические работы!" function tech_work() { echo '<!DOCTYPE HTML>'; echo '<html>'; echo '<head>'; echo '<link rel="icon" type="image/vnd.microsoft.icon" href="path-to/favicon.ico">'; echo '<link rel="SHORTCUT ICON" href="path-to/favicon.ico">'; echo '<noscript><meta http-equiv="refresh" content="0; URL=/bad_client.php"></noscript>'; echo '<title>Технические работы</title>'; echo '</head>'; echo '<body>'; echo 'Ведутся технические работы'; echo '</body>'; echo '</html>'; } # Основная страница function html() { # Мета-теги function meta() { echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; echo '<meta http-equiv="Pragma" content="no-cache">'; echo '<meta name="revisit-after" content="4 days">'; echo '<meta name="robots" content="all">'; } //////////////////// # CSS-файлы function css() { echo '<link href="main.css" rel="stylesheet" type="text/css">'; // main.css echo '<link href="css/header.css" rel="stylesheet" type="text/css">'; // header.css echo '<link href="css/g_menu.css" rel="stylesheet" type="text/css">'; // g_menu.css echo '<link href="css/left_bar.css" rel="stylesheet" type="text/css">'; // left_bar.css echo '<link href="css/centr_bar.css" rel="stylesheet" type="text/css">'; // centr_bar.css echo '<link href="css/right_bar.css" rel="stylesheet" type="text/css">'; // right_bar.css echo '<link href="css/footer.css" rel="stylesheet" type="text/css">'; // footer.css } //////////////////// # JS-файлы function js() { } //////////////////// # Header function headeri() { echo '<div id="header">'; include('header.php'); logo(); head_cont(); g_menu(); echo '</div><!--header-->'; } //////////////////// # Content function content() { echo '<div id="content" style="visibility: visible !important">'; echo '<div id="left_bar">'; // Левый бар include('left_bar.php'); city(); echo '</div><!--left_bar-->'; echo '<div id="centr_bar">'; // Центральный бар include('centr_bar.php'); feed_p(); comments_p(); echo '</div><!--centr_bar-->'; echo '<div id="right_bar">'; // Правый бар include('right_bar.php'); ksd(); echo '</div><!--right_bar-->'; echo '</div><!--content-->'; } //////////////////// # Footer function footer() { echo '<div id="footer">'; include('footer.php'); echo '</div><!--footer-->'; } //////////////////// # HTML echo '<!DOCTYPE HTML>'; echo '<html>'; echo '<head>'; echo '<link rel="icon" type="image/vnd.microsoft.icon" href="path-to/favicon.ico">'; echo '<link rel="SHORTCUT ICON" href="path-to/favicon.ico">'; meta(); css(); echo '<noscript><meta http-equiv="refresh" content="0; URL=/bad_client.php"></noscript>'; echo '<title>Тестинг</title>'; echo '</head>'; echo '<body>'; echo '<div id="main_1">'; echo '</div><!--main_1-->'; echo '<div id="main_2">'; echo '<div id="wr">'; headeri(); content(); footer(); echo '</div><!--wr-->'; echo '</div><!--main_2-->'; echo '</body>'; echo '</html>'; } ?>
Не буду, комментировать этот набор функций. Хочу спросить, а правильно ли это.
Не нагружу я сервер, множеством операторов echo, их число, конечно можно уменьшить, но всё-таки, как вам такой подход, и в исходнике, всё потом в одной строчке, как в Яндексе...
Гуру PHP и не сильные гуру PHP, оставляйте свои рекомендации, советы, наработки, чтобы позволило повысить уровень PHP-знаний.
На этом вроде бы всё!
Спасибо за прочитанное, жду ваших советов!
|