Какова Ваша структура каталогов разработки программного обеспечения?

Security Warning: этот ответ не соответствует лучшим рекомендациям по безопасности. Эвакуация неадекватна для предотвращения SQL-инъекции , вместо этого используйте подготовленные операторы . Используйте стратегию, изложенную ниже, на свой страх и риск. (Кроме того, mysql_real_escape_string() был удален в PHP 7.)

Вы могли бы сделать что-то основное:

$safe_variable = mysql_real_escape_string($_POST["user-input"]);
mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");

Это не решит каждую проблему, но это очень хороший ступень. Я оставил очевидные элементы, такие как проверка существования переменной, числа (числа, буквы и т. Д.).

23
задан Vadim Kotov 16 August 2017 в 08:32
поделиться

7 ответов

Я делаю следующее:

  • Проекты
    • Проект 1
        <литий> Дизайн <литий> Документы <литий> Код проект n
      • <литий> Дизайн <литий> Документы <литий> Код
    • , Не активный
        <литий> Проект 1
          <литий> Дизайн <литий> Документы <литий> Код
        <литий> Проект n
          <литий> Дизайн <литий> Документы <литий> Код

По некоторым причинам, это помогает мне много сохранить все файлы сгруппированными проектом и сохранить мои неактивные проекты (те, я в настоящее время не продолжаю работать) на дальнейшем вниз папка. Я предполагаю, что отвлечен ими иначе.

10
ответ дан David 29 November 2019 в 02:49
поделиться

Я - большой поклонник Вашего большего количества детализированных листов, но на верхнем уровне я выполняю намного лучше организацию файловой системы проектом. Я, намного более вероятно, буду в каталоге кода и думать, "Эй, какова была спецификация для этого?", чем быть в каталоге спецификации и думать, "Для какого проекта я хотел спецификацию?" Для реконструкции схемы:

|
|___webs____
|           |
|           |_blog.com_
|           |          |
|           |          |_docs_
|           |          |      |
|           |          |      |_mockups
|           |          |      |_user stories
|           |          |      |_...
|           |          |
|           |          |_code_
|           |          |      |
|           |          |      |_dev_
|           |          |      |     |
|           |          |      |     |_app
|           |          |      |     |_cfg
|           |          |      |     |_...
|           |          |      |
|           |          |      |_prod_ 
|           |          |      |_qa_
|           |          |      |_uat_
|           |
|           |_blah.com_
|           |          |
|           |          |_...
|
|_desktop___
|           |
|           |_noteapp__
|           |          |
|           |          |_...
|           |_...


                                                KEY
                                                dev  - development
                                                prod - production
                                                qe   - quality engineering
                                                uat  - user acceptance testing

Однако организация в моем офисе следует Вашим методам и, кажется, поддерживает великоватую среду разработки. Лично, я нахожу, что он действительно разбивающий должен искать макеты и другие случаи в каталогах кроме того, в котором находится мой проект (а именно, как аналитик, имея спецификации, отдельные от Маркетинга моделей, но я отступаю), но с точки зрения делегации процесса, разделяющей эти понятия, вероятно, имеет много смысла.

Просто мои два цента.

5
ответ дан kyle 29 November 2019 в 02:49
поделиться

Я храню все в каталоге "c:\projects" на моей машине окон и ~ / проекты на нашем oid Unix (Linux & solaris) среды. Ниже этого у меня есть "изучение" (для экспериментов кода и отрывков / каталог) и затем один каталог для каждого проекта. Через какое-то время, когда проект является более не существующим, я стираю локальное устройство хранения данных, и код заархивирован только в SVN.

5
ответ дан lexu 29 November 2019 в 02:49
поделиться

Я склонен предпочитать более плоскую структуру каталогов и хотел бы рекомендовать сохранить ее максимально простой. Помните, что, по крайней мере, в Windowsland, существует предел на длину командной строки. Таким образом наличие очень глубинных структур могло бы породить некоторые противные ошибки сборки.

0
ответ дан Ignas Limanauskas 29 November 2019 в 02:49
поделиться

Я просто использую неукомплектованное название каждого проекта и бросаю все соответствующие файлы и каталоги в тот один каталог. Что-то вроде этого:

  • project_name (Название проекта, "неукомплектованное")
    • dir1/(Не названный как это в действительности.)
    • dir2 /
    • dirN /
    • file1
    • file2
    • file3
    • fileN
0
ответ дан hydrapheetz 29 November 2019 в 02:49
поделиться
  • src \ <- Исходные коды для нескольких проектов (ниже)

  • tests \

    • test_a <- module тест для a для исследований и разработок (использует некоторые коды из папки src)

    • test_b <- модуль для теста b для исследований и разработок (использует некоторые коды из папки src)

    • ...
  • main_app_folder <- основной файл проекта для производства (использует большинство кодов из папки src)

  • doc \ <- Documents

  • tools \

    • tool_a <- tool a (использует некоторые коды из папки src)

    • tool_b <- tool b ( использует некоторые коды из папки src)

  • cleanup.exe / .ini <- утилита для очистки временных файлов сборки.

Проектом (в main_app_folder, тестах или инструментах) может быть .vcproj (visual studio c / c ++) .mmp (сборочный файл Symbian), сборочный файл (сборочный файл Linux). Каждый проект имеет свой собственный основной файл .cpp - всегда содержащий минимальный набор функций, все остальное имеет тенденцию быть более или менее пригодным для повторного использования (в папке src \).

Разница между тестовым приложением и приложением инструмента заключается в том, что инструмент отображает что-то более или менее полезное, в то время как тест проверяет только, работает ли он или нет.

Разница между тестовым и основным приложением заключается в том, что тестовое приложение не содержит всей функциональности, также тестовое приложение может включить некоторые специальные # define, необходимые для тестирования. Обычно в тестируемом приложении сокращается набор основного приложения без лишних #define.

также тестовое приложение может включить некоторые специальные # define, необходимые для тестирования. Обычно в тестируемом приложении сокращается набор основного приложения без лишних #define.

также тестовое приложение может включить некоторые специальные # define, необходимые для тестирования. Обычно в тестируемом приложении сокращается набор основного приложения без лишних #define.

2
ответ дан 29 November 2019 в 02:49
поделиться

Файлы в SVN:

SomeLibraryX
  SomeLibraryX.sln
  SomeFunctionA.cs
  SomeFunctionB.cs
  ..

SomeApplicationY
  SomeApplicationY.sln
  SomeApplicationY.cs          <-- might use SomeLibraryX as one of the dependencies

SomeApplicationZ
..

Файлы в некоторых общих \\ intra-pc \ Releases \

SomeApplicationY 1         <-- folder used to execute compiled binary. Contains all the necessary input files needed for execution.
  Model                    <-- all input files like xml:s and 3ds:s 
  Textures                 <-- all pictures 
  Depencies                <-- all dependency executables and dlls
  SomeApplicationY.exe     <-- main exe
  SomeApplicationY.ini     <-- execution parameters file, that can be drag&dropped onto main exe

SomeApplicationY 2
  Model 
  Textures
  Depencies
  SomeApplicationY.exe
  SomeApplicationY.ini

SomeApplicationY 3            <-- the last demo-release of this project that is currently under construction (used for executing and debugging the exe)

  Model 
  Textures
  Depencies
  SomeApplicationY.exe
  SomeApplicationY.ini

SomeApplicationZ 1
...
0
ответ дан 29 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: