ZogG 02.12.2010 01:45
Talks! — Нужны программистов советы
Спецом пишу в толкс, так как вопрос расплывчит и даже не вопрос а просьба совета.Вообщем как вы програмируете?
Пишите гуй и наполняете кодом? или каркас программы и наполняете функциями? или функции, а потом собираете в программу?
Какие функции стоит выносить отдельно, а какие оставлять в маин файле программы? Зачем иногда в прогах на Си к примеру используют питон?
Может кто напишет пост про то какие файлы куда в систему сувать, если пишешь прогу? не в одной папке же они будут.
извините за тупые вопросы, потому и толкс.
но однозначного стандарта нет
Как это не странно, но однозначный стандарт есть. И даже часть его перевода лежит тут, на welinux.
Написанный, конечно, есть.
Но в реальности всё же разные дистрибутивы следуют своим устоявшимся традициям и правилам. :)
Хорошо это или плохо - тема для отдельного холивара, но такова уж судьба.
Но в реальности всё же разные дистрибутивы следуют своим устоявшимся традициям и правилам. :)
Хорошо это или плохо - тема для отдельного холивара, но такова уж судьба.
может сделаете пару постов с примерами, я тут осваиваю азы, щас курс был вступления в си, но там на винде и самые азы
Еще можно сделать так:
cd $HOME
mkdir tmp
cd tmp
mkdir hello
cd hello
apt-get source hello
sudo apt-get install hello
И посмотреть полученные пакет и исходники. Это как раз образец дебиановского пакета и исходников на примере Hello, world
cd $HOME
mkdir tmp
cd tmp
mkdir hello
cd hello
apt-get source hello
sudo apt-get install hello
И посмотреть полученные пакет и исходники. Это как раз образец дебиановского пакета и исходников на примере Hello, world
Да, в принципе, всё уже написано до меня.
К примеру, можно почитать раздел "Файловая система"(Глава 5) книжки "Руководство администратора Linux" Эви Немет, Гарт Снайдер, Трент Хейн.
К примеру, можно почитать раздел "Файловая система"(Глава 5) книжки "Руководство администратора Linux" Эви Немет, Гарт Снайдер, Трент Хейн.
Дистрибутивы в общем и целом то как раз и следуют этому стандарту.
Зачем иногда в прогах на Си к примеру используют питон?
если нужна поддержка скриптов в программе, проще подключить питон, чем изобретать своё.
http://ru.wikipedia.org/wiki/Использование_Python
раздел "Примеры проектов, реализованных на Python"
раздел "Примеры проектов, реализованных на Python"
Пишу ядро программы, гуй(обработку опций командной строки или любой другой способ управления программой, допиливаю, когда всё уже готово). В процессе написания для тестирования использую костыли(принты, вывод в лог) и дебаггер.
Практически все используемые в программе функции складываю в модули. Их несколько, делятся по логике(глубоко системные, такие как обращения к бд или реализация внутренних интерфейсов - это одно, а например, реакция на пользовательские команды - это другое и т.п.). В основной программе оперирую этими написанными функциями. Правда, есть у меня ещё один ньюанс - я активно использую cpan.org, который тоже даёт мне набор уже готовых модулей для очень многих задач, что тоже способствует вынесению практически всех функций из main'а.
Логично предположить, что в сложных программах выгоднее вызвать команду на другом языке или даже воспользоваться библиотекой из другого языка, чем реализовывать этот функционал самому. На примере того же perl'а - многие модули к нему написаны на сях(для увеличения скорости работы) или, например на плюсах(подключение qt к perl-программам).
Это довольно хорошо раскрыто во многих общих доках по устройству файловой системы linux, но однозначного стандарта нет, так что для каждого дистрибутива надо читать документацию, предоставленную разработчиками и сборщиками пакетов.
Я лично в процессе разработки работаю, как бы в корне - то есть все модули и библиотеки у меня в programname/lib/ (тут ещё идёт разбивка на поддиректории, в зависимости от того, какого типа модули, откуда взяты, т.е. дистрибутивные, в ручную установленные с cpan или мои собственные), документация, дополнительные материалы в programname/usr/doc/ и programname/usr/share/. Непосредственно исполняемые файлы, соответственно programname/bin/. Ну и так далее(логи - var, временные файлы tmp).