Прочитай тему чуть повыше. Есть диаграммка Каскадность vs Итеративность - Формализация. XP в ней лежит как раз там, где находятся подобные группы программистов. Конечно, можно использовать FDD или Crystal Clear, но они менее популярны и их суть труднее понять.
Какая разница на чём писать? (грубо говоря)
Грубо говоря, есть языки, на которых можно писать коллективно (C/C++, Java (не надо включать сюда C#, я поверю в него только когда выйдет на нем полнофункциональная операционная система, офисный пакет или большая игра)) и те, на которых это не получится при любой квалификации программистов (VB6, Perl, batch, Pascal) - опять же, я не говорю о разработке соло и последующих патчах или плагинах от коммунити.
Тот факт что найти нормально пишущего на PHP я полностью подтверждаю.
Можно, но только если это хороший C++-программист, который пишет только на PHP5. Другое дело, что заставить хорошего C++-программиста выучить, а потом писать на PHP довольно сложно.
Удивительно, но синтаксис в Си в принципе похож. Почему же на С++ можно найти нормально пишущих, а на пхп нет?
После хорошего знакомства с обоими языками ты увидишь очевидную разницу
По поводу стандартов кодирования.. я немного не это имел ввиду, не ну понятно.. пишем на си или пхп всем сказали код офрмляем в юникс стиле - всё понятно. Я про взаимодействие частей между собой, про имена переменных/методов/классов итп итд...
Что еще за юникс-стиль? "имена переменных/методов" - это и есть стандарт кодирования. Имена классов и спецификации интерфейсов должны обговариваться в подробном ТЗ или UML-диаграмме.
По поводу количества людей в команде, 4-5 это смотря какой проект, и смотря как разделено задания каждому...
Не людей в команде, а программистов, причем не "принеси-подай", а полноценно участвующих в проекте. На одну озвучку можно пригласить сотни людей, но с программированием такого не получится.
Вообще есть у кого-то опыт работы на % от проекта?
У меня есть богатый опыт посылания на юг товарищей, которые мне предлагают проценты за участие в "самом перспективном проекте Рунета".
Даже не знаю, что и сказать. Впечатлительный топик. Искренне сказать, собрать онлайн-тим в n
раз легче, чем собрать качественную команду в одной локации. Управлять онлайн-командой в n раз
сложнее, чем управлять локальной командой. Если даже кодеры приходят в офис/хату каждый день как на работу и все досконально обсуждают, даже тогда различные терки не исключены. А с онлайн...
Ну кто мог подумать, что если я написал, что знаю HTML, остальные подумают что я также
знаю что такое CSS
Это одно.
Второе: Вася П. должен сегодня дописать половину модуля, а у него пересдача теоретической механики, или там, млин, бабушка заболела. А дальше, это же цепная реакция.
Еще, онлайн работать бывает тупо лень. Если в офис переться ломает но надо (С), то онлайн может и подождать (не волк). Нужен очень хороший материальный стимул (но он тоже может не спасти).
На энтузиазме строили только коммунизм. Что-там было про 450 WMZ? И кто же за такое будет работать? Китайские крестьяне? Средний индус-фрилансер-одиночка получает около 1K евро США в месяц. У них тоже нет Пайпала. Я это к тому, что при разработке небольших проектов в одиночку
можно заработать денег если не больше, то хотя бы зарабатывать более гарантированно. (А кто сказал что мегапроект не накроется метлой на 34% выполнения?) Это я про работу на % от прибыли, которую должен принести проект.
Если все-таки решили платить з/п. Нужен трудовой договор и множество всяких юридических фич, без этого сейчас никуда. Еще один камень в огород интернет-организации. Если один член команды живет в Украине, второй в Казахстане, а третий вообще в Конго? Как с этим быть?
Итак, я за организацию локальной команды.
Интернет пока как организационный плацдарм ... не нагибаясь. Пока не придумали виртуальную
реальность. Пока...
Грубо говоря, есть языки, на которых можно писать коллективно (C/C++, Java (не надо включать сюда C#, я поверю в него только когда выйдет на нем полнофункциональная операционная система, офисный пакет или большая игра)) и те, на которых это не получится при любой квалификации программистов (VB6, Perl, batch, Pascal) - опять же, я не говорю о разработке соло и последующих патчах или плагинах от коммунити.
Ну вот вопрос к тебе как к знатоку С/С++: что есть такого в С/С++ для командной разработки, чего нет в С#? Или темболее Java?
После хорошего знакомства с обоими языками ты увидишь очевидную разницу
Ну я не скажу что хорошо знаю С++, но пхп4, почему бы и нет? Щас ботаю пхп5, с вводом нормального ООП я бы сказал он очень С++ напоминает. Уж что-что, а синтаксис я вроде освоил Поэтому, если можно, давай как-то поаргументированей...
Что еще за юникс-стиль? "имена переменных/методов" - это и есть стандарт кодирования. Имена классов и спецификации интерфейсов должны обговариваться в подробном ТЗ или UML-диаграмме.
Стандарт оформления кода
http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
не предусматривает имена классов и спецификации интерфейсов... Это скорее UML диаграмма.
У меня есть богатый опыт посылания на юг товарищей, которые мне предлагают проценты за участие в "самом перспективном проекте Рунета".
Поставь себя на место автора идеи/проекта, ты же и тим-лидер. Откуда у бедного студента деньги на зарплату? Как же быть, как реализовать свой довольно большой проект?
2 Gogic
Ну почему же такая увереность что виртуальной реальности ещё не придумали? Мы ж все в матрице живём! ) Нет.. если серёзно, существует на сегодняшний момент достаточно много инструментов, главное разобраться в них... Набор инструментов и порождают виртуальную реальность аля виртуальный полигон для колективной работы над проектов.
По поводу локальной организаци... Разумеется это лучше, но это не всегда возможно. Даже чаще невозможно. А организовавшись локально, отпадает вопрос с разными законами для разных стран. Ты будешь придерживаться именно тех законов, в котором организовался локально. У нас насчёт з/п тоже хитро выкручиваются... Набирают студентов, оформляют на практику, по бумажкам платят или минимальную зп или вообще коль практика - ничего не платят. На самом деле платят конечно порядка 300-700$ (полный день) и студент рад и счаслив. Я знаком лично с людьми, которые так работают, причём ещё и на дневном учиться успевают...
Ну вот вопрос к тебе как к знатоку С/С++: что есть такого в С/С++ для командной разработки, чего нет в С#? Или темболее Java?
Ничего не знаю про Java, но в C# нету ни нормальных темплейтов, ни множественного наследования, ни даже ABI. Я не представляю, как писать код с такими ограничениями, а уж тем более, как дописывать чужой.
Щас ботаю пхп5, с вводом нормального ООП я бы сказал он очень С++ напоминает.
Называть PHPшный ООП даже 5-й версии (в 4-й его, строго говоря, не было) похожим на C++ - явная глупость. Ни перегрузки операторов, ни человеческой системы модификаторов доступа, ни темплейтов. Кроме того, на языках со слабой типизацией вообще очень сложно писать командно.
"имена переменных/методов" - это и есть стандарт кодирования. Имена классов и спецификации интерфейсов должны обговариваться в подробном ТЗ или UML-диаграмме.
Стандарт оформления кода
http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
не предусматривает имена классов и спецификации интерфейсов... Это скорее UML диаграмма.
Найди 5 отличий?
И все же, что за юникс-стиль кодирования? Стиль K&R общеизвестен, я сам пользуюсь его частью. Кроме того, в википедии описана незначительная часть соглашений.
Как же быть, как реализовать свой довольно большой проект?
Пиши сам и релизь опен-сурс. У бедного студента Линуса Торвальдса тоже не было денег на оплату программистов.
2Brand: отсутствие логики в посте не мешает хорошей аргументации в ответе на него
В K&R стиле ядро линукса написано, из за этого его часто называют unix style coding. PHP темплейты по большому счётну ненужны - у него ведь нет строгой типимизиции. Перегрузки операторов действительно нет. Вместо множественного наследования есть итераторы. Но без большенства фишке можно обойтись, сделать по другому... Про с# и javа я толком ничего не скажу, но как-то терзают сомнения что в с# нет нормальных темплейтов, множественного наследования итп.. Ладно забъём эту тему, давай лучше с этого момента
Пиши сам и релизь опен-сурс. У бедного студента Линуса Торвальдса тоже не было денег на оплату программистов.
подробнее. Я незнаю как Линус Торвальдс организовал своё рабочие пространство, незнаю как ты его организовал, или организовал бы... Вот поделись мыслями по этому поводу...
В K&R стиле ядро линукса написано, из за этого его часто называют unix style coding.
Его часто называют kernel style, а не unix style, потому что UNIX и Linux - это вообще говоря, разные вещи. Так что нефиг отмазываться
PHP темплейты по большому счётну ненужны - у него ведь нет строгой типимизиции. Перегрузки операторов действительно нет. Вместо множественного наследования есть итераторы.
Использование темплейтов не ограничивается подстановкой базовых типов, в нормальных языках инстанцировать можно чем угодно, включая классы и константы, поэтому аргумент не канает. Фраза "Вместо множественного наследования есть итераторы" примерно равна "У меня нет синего карандаша, зато есть спаниель". Множественное наследование и итераторы не имеют практически ничего общего
Но без большенства фишке можно обойтись, сделать по другому...
Чесание правых ушей левыми пятками нифига не способствует разработке устойчивых и работоспособных программ.
как-то терзают сомнения что в с# нет нормальных темплейтов, множественного наследования
Пусть они тебя не терзают. Разработчики C# решили, что эти вещи "очень усложняют разработку" и что их индусские быдлокодеры все равно не поймут, как можно унаследовать шаблонный объект от нескольких чисто виртуальных шаблонных объектов так, чтобы при инстанцировании константой все работало. У них другая задача - делать свою работу быстро и дешево.
Я незнаю как Линус Торвальдс организовал своё рабочие пространство
Линус Торвальдс написал каркас ядра, продумал и описал его архитектуру, взял готовые стандарты кодирования, описал философию (например, почему Си, а не C++), выложил его исходники, создал лист рассылки, и стал принимать патчи. Не знаю точно, как сейчас, но раньше он все патчи к ядру (новую функциональность, дописанное, исправленное и т.п.) смотрел и прикручивал сам. Вроде бы сейчас он прикручивает то, что пользуется популярностью.
Линус Торвальдс написал каркас ядра, продумал и описал его архитектуру, взял готовые стандарты кодирования, описал философию (например, почему Си, а не C++), выложил его исходники, создал лист рассылки, и стал принимать патчи. Не знаю точно, как сейчас, но раньше он все патчи к ядру (новую функциональность, дописанное, исправленное и т.п.) смотрел и прикручивал сам. Вроде бы сейчас он прикручивает то, что пользуется популярностью.
Ну это сотрясания воздуха, хотелось бы конкретных предложений/идей которые основываются на собственном опыте итп...
не надо включать сюда C#, я поверю в него только когда выйдет на нем полнофункциональная операционная система, офисный пакет или большая игра
На C# пишутся системы, в т.ч. и коллективно, размерами побольше офисного покета или большой игры, не нужно глупости говорить.
Компании-разработчики не будут ждать, пока какой-то Sharp во что-то поверит.
Поддержки шаблонов нет, частично это компенсируется поддержкой обобщенных типов.
Множественного наследования нету, есть поддержка миксинов, но вобщем-то я не думаю что можно придумтать убедительный сценарий при котором множественное наследование было бы удачным решением.
Итераторы есть
Пусть они тебя не терзают. Разработчики C# решили, что эти вещи "очень усложняют разработку" и что их индусские быдлокодеры все равно не поймут, как можно унаследовать шаблонный объект от нескольких чисто виртуальных шаблонных объектов так, чтобы при инстанцировании константой все работало. У них другая задача - делать свою работу быстро и дешево.
Не знаю кому это может понадобиться, если энтузиастам понадобится - они знают что в этих целях использовать.
Ну это сотрясания воздуха, хотелось бы конкретных предложений/идей которые основываются на собственном опыте итп...
Что ты просил, то и получил. Нету таких программ, которые снимут задачу по сбору и управлению командой с лидера. Да и мануал по использованию CVS я не вижу смысла здесь постить.
На C# пишутся системы, в т.ч. и коллективно, размерами побольше офисного покета или большой игры, не нужно глупости говорить.
Может, вместо уверенного "есть", за которым кроется "должны быть, наверно", приведешь конкретные названия? И не каких-то сферических коней в вакууме, а реальных приложений типа Photoshop, STALKER, Google или OpenOffice?
Поддержки шаблонов нет, частично это компенсируется поддержкой обобщенных типов.
Очень частично и только с версии 2.0.
я не думаю что можно придумтать убедительный сценарий при котором множественное наследование было бы удачным решением.
"Я не думаю" != "Никому не нужно и никто не использует".
Смешно было бы, если бы не было итераторов
Не знаю кому это может понадобиться, если энтузиастам понадобится - они знают что в этих целях использовать.
Если называть энтузиастами профессиональных разработчиков, которые в командах создают огромные проекты, то да, они знают, что использовать. И используют. C++.
Rus
Вы только посмотрите сколько здесь цытат как все друг друга хотят поймать. Скажите мне чему вы такие?
Ukr
Ви тільки подивіться скільки тут цитат як всі один одного хочуть підловити. Скажіть мені чому ви такі?
p.s не кого-то напоминаю
во-во я тоже нелюблю холивары, т.е. войну цитатами... Есть что сказать - просто напиши, хочешь обратиться конкретно к кому-то, поставь "2 ник", эти холивары только траф грузят.
Понимаешь Sharp, один говорит СVS второй SVN, третий TFS, четвёртый VSS.. как тут не потеряться, темболее относительно не опытному? Ладно.. расскажите что-ли, что из всего что я перечислил лучше всего взаимодействует с веб? Т.е. где лучше всего просмотреть ход проекта не используюя ничего кроме браузера? И Ещё.. все эти системы требуют выделеного сервера, что если его нет? И ещё.. я видел какие-то подобные движки "аля пространство разработчков" для пхп, думаю есть какие-то и на асп.. что по этому поводу скажут знающие?
Кстати эта тема включает и второй вопрос, её пытались затронуть в самом начале, но потом сразу перешли к технической стороне, вернёмся.. Ок _предположим_ с технической разобразись, как же именно с теоретической? С чего начинается Родина? всмысле проект.. ой, я знаю - с идеи, ок.. а как оно продолжается, как должно продолжаться? Все мысли в слух плз...
Ну так поставь, поковыряйся и посмотри, какая тебе понравится.
После идеи надо писать ТЗ, паттерны использования и рисовать архитектуру. Потом надо начинать писать код. А когда у тебя есть уже что-то рабочее, что можно показать, тогда уже можно и начинать искать тех, кто будет тебе помогать в дальнейшей разработке.