Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Исходный код в программировании

Исходный код компьютерной программы

Исходный код — это текст компьютерной программы на языке программирования или языке разметки, который состоит из цифр и букв английского языка для понимания человеком. Исходный код компьютерной программы транслируется в исполняемы код, понятный для компьютера, и запускает работу программы с помощью компилятора или выполняет код через интерпретатор. С исходным кодом работают программисты, прописывая всю логику работы программы, добавляя комментарии в наиболее сложные участки кода для понимания их работы другими программистами, генерируя автоматическими инструментами документацию исходного кода.

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

Так как очень часто одни и те же участки программного кода используются в нескольких местах программы, либо задействованы в нескольких других программах, такие участки кода принято выделять в модули и компоненты, которые можно в любой момент быстро подключить и использовать в нужной программе. Такое действие назвается — повторным использованием программного кода. Это очень облегчает разработку программ и делает ее заметно быстрей, без необходимости повторно писать одни и те же участки программного кода.

В случае применения таких модулей и компонентов, да и вообще, исходного кода самого по себе, важным моментом является переносимость на другие программные платформы, их правильная работа на этих платформах.

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

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

Для компьютера, нет разницы и понимания «хорошего кода» или «плохого кода». Программисту же, для понимания что происходит в программе, написанной другим программистом, поддержки и написания новых частей программы, качество исходного кода является очень важной вещью. Ведь если код будет труден для понимания, его невозможно прочитать, а если возможно, но на это уходит много времени, то разработка и поддержка программы существенно усложнит жизнь программиста. Поэтому качество кода должно соответствовать следующим требованиям:

  • читаемость кода — простой и локаничный код, с понятными комментариями там, где это действительно требуется
  • легкость в пониманиии, тестировании и отладке для написания новых частей программы и устранения ошибок
  • экономичное использование ресурсов — памяти, процессов, пространства на диске
  • отсутствие неиспользуемых переменных, неиспользуемых участков кода, устаревших комментариев
  • переносимость программы на другие платформы

Как измерить сложность кода программы при программировании?

Привет! Продолжаем осваивать принципы создания качественного ПО! И сегодня мы поговорим о том, как можно измерить сложность исходного кода программы, который Вы написали, а также о том, зачем вообще нужно измерять сложность кода.

Ранее в материале «Этапы разработки программы – как создаются и проектируются программы?» мы рассмотрели общие этапы создания качественных и крупных программ. Сейчас мы поговорим, на самом деле, об одном из самых главных аспектов создания качественного ПО, а именно об управлении сложностью внутренней реализации программы, а точнее о сложности кода, т.е. насколько сложный код Вы пишите.

Зачем измерять сложность кода программы?

Как я уже отметил, управление сложностью – это важная часть создания качественной программы, данный процесс заключается в снижении сложности внутренней реализации программы, включая уменьшение сложности кода. Если Вы будете уменьшать сложность кода программы, Вам будет легче сопровождать этот код, и тем самым в нем будет меньше ошибок, что как раз и способствует повышению качества разрабатываемой программы.

Снижение сложности кода — это действия, направленные на сведение к минимуму объема сложного кода, с которым Вам необходимо работать в каждый конкретный момент времени. С практической стороны это выглядит, как, например, разбиение крупных процедур или методов, в которых много кода, на более мелкие. Иными словами, те участки кода, которые можно вынести в отдельные функции, процедуры или методы, необходимо заменять на вызов соответствующих функций, процедур и методов, которые были созданы специально для выполнения этого участка кода. Кроме того, существуют и другие приемы уменьшения сложности кода.

Отсюда и возникает этот очевидный вопрос — как измерить сложность кода, который мы написали в процессе программирования, чтобы узнать, сложный он или нет?

Способы измерения сложности исходного кода программы

Одним из основных и, главное, простых способов оценки сложности кода является способ, который заключается в простом подсчете в коде конкретных методов и процедур, так называемых «Точек принятия решения».

Суть в следующем, Вы считаете, сколько в отдельно взятом методе или процедуре «Точек принятия решения», и если итоговое количество превышает рамки допустимого предела, то код подлежит переконструированию.

К «Точкам принятия решения» относятся следующие операторы:

  • if
  • while
  • repeat
  • for
  • and
  • or
  • Каждый вариант CASE в SWITCH или в SELECT CASE.

Так вот, ориентируйтесь на следующие диапазоны значений количества точек принятия решения:

  • До 5 – все хорошо;
  • От 5 до 10 – можно начать думать о способах упрощения кода;
  • Больше 10 – необходимо вынести часть кода в отдельные функции, процедуры и методы.
Читать еще:  Ошибка 0xc10100be при воспроизведении видео

Отсюда следует, что если Ваш метод или процедура содержит, например:

Итого 10 + 5 + 3 + 2 = 20, значит, этот метод или процедуру необходимо переделать, создать для определенных участков кода отдельные функции, процедуры и методы, а в текущем коде просто вызывать их.

Тем самым, Вы уменьшаете сложность кода, с которым Вы имеете дело в каждый момент времени.

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

Еще одним приемом уменьшения сложности кода является использование допустимой глубины вложенности таких конструкций как: if или while. Ведь многим программистам достаточно трудно понять условные конструкции и циклы, которые содержат более 3-4 уровней вложенности, т.е., например, внутри if есть еще один if, а внутри этого еще один, и так далее.

Таким образом, чтобы измерить сложность кода, можно также подсчитать и количество уровней вложенности if и while, и, если условные конструкции или циклы содержат более 3 уровней вложенности, значит, эти конструкции сложные, и их необходимо переконструировать.

Если Вас интересуют вопросы управления сложностью, правильного конструирования ПО с использованием объектно-ориентированного языка программирования (C++, Java, Visual Basic), то я Вам рекомендую почитать книгу Стива Макконела «Совершенный код», но сразу скажу, что она для программистов, которые уже имеют базовые знания программирования, иными словами, она не для новичков, и она не учит Вас тому или иному языку.

Также пользуясь случаем, хочу порекомендовать свою книгу «Как стать программистом? 14 советов по достижению поставленной цели», она для тех, кто только собирается стать программистом, но не знает с чего начать, в ней рассмотрен конкретный план действий, который поможет Вам стать программистом.

На сегодня это все, надеюсь, материал был Вам полезен, удачи Вам, пока!

Исходный код программы

Исходный код (обычно просто текст программы, англ. source code ) — любой набор инструкций или объявлений, написанных в компьютерном языке программирования и в форме, которую может прочитать человек. Исходный код позволяет программисту общаться с компьютером с помощью ограниченного набора инструкций.

Исходный код, написанный на HTML, с использованием JavaScript

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

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

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

Лицензирование

Программные средства, и исходный код, что их сопровождает, как правило, относятся к одной из двух парадигм лицензий: открытое программное обеспечение и несвободное программное обеспечение (или проприетарное). В целом, программное обеспечение является открытым, если исходный код может свободно использоваться, распространяться, модифицироваться и анализироваться, и проприетарным, если исходный код держится в секрете, или находится в частной собственности и доступ к нему ограничен. Для обеспечения закрытости используются преимущественно положения различных законов об авторском праве, но часто используются также коммерческая тайна и патенты. Кроме того, дистрибутив программы, как правило, приходит с лицензионным соглашением (EULA), которое, главным образом, запрещает декомпиляцию, реинжениринг, анализ, редактирование, или обход защиты от копирования. Виды защиты исходного кода (кроме традиционного компилирования в объектный код включают шифрование кода, запутывания кода ( англ. code obfuscation ) или морфинг кода.

Качество

То, как написано программу, может иметь очень важные последствия для ее сопровождения. Многие учебники по стилю программирования настаивают на важности читабельности, и многие рекомендации направлены на поддержку исходного кода программы, которое включает в себя отладочную и обновления. Другие приоритеты, как например, скорость выполнения программы и возможности компилирования программы для нескольких архитектур, часто делают читабельность кода менее важным фактором, поскольку качество кода полностью зависит от его назначения.

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

Читать еще:  Код ошибки 924 в плей маркете

Хороший открытый исходный код для изучения веб-программирования

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

я ищу исходный код веб-приложений, а не фреймворков

Я не новичок, я могу кодировать до некоторой степени. Я хочу знать, как материалы выполняются в реальных приложениях.

9 Ответов

Ну, этот вопрос немного расплывчатый. Вы ищете веб-фреймворки с открытым исходным кодом или открытый исходный код, написанный в веб-фреймворках, но попробуйте посмотреть на Tomcat , Django , ASP.net MVC , MediaWiki , Drupal , и WordPress среди многих, многих других.

Еще пару приложений (сейчас этот вопрос уточняется) являются gitweb будет и Meldware

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

  1. Небольшой проект. Под малым я подразумеваю «almost not a project» маленьких. По той или иной причине они так и не прошли стадию доказательства концепции. Либо идеи были недостаточно интересны, либо, что еще хуже, программист(ы) не был достаточно хорош, чтобы перевести его в приложение ready-for-prime-time. Часто способности этих программистов не намного превосходят ваш текущий уровень, поэтому они не стоят вашего времени на изучение.
  2. Средние-малые проекты . Эти проекты достаточно велики, чтобы быть интересными и сложными, но общедоступная техническая документация сильно отсутствует, и вы никогда не сможете понять их архитектуру. Вы могли бы email соавторов, но они, вероятно, слишком заняты разделением своего времени между высокооплачиваемой дневной работой и посвящением всего своего личного времени этому любимому проекту. Двигаться дальше.
  3. Большие проекты времени. E.g. Firefox, Eclipse, и т. д. Программное обеспечение в этой категории тщательно документировано, но это не имеет значения, потому что количество времени, необходимое для чтения и понимания всего этого, непомерно велико. Вы должны быть сумасшедшими, чтобы пройти через это, если только вы не работаете над проектом (и, надеюсь, получаете за это деньги!).

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

Если я вас правильно понял, вы хотите изучить код популярных веб-приложений с открытым исходным кодом, чтобы понять, как кодируются «реальные, живые, популярные» приложения.

Если это так, я рекомендую следующие популярные приложения с открытым исходным кодом:

WordPress -кодируется с PHP, это приложение является очень популярной системой управления блогом

Текстовый шаблон кодируется с помощью PHP, это приложение похоже на wordpress, но немного более продвинутый.

Модуль CGI-закодированный с Perl, этот модуль perl используется в большинстве веб-приложений на основе perl. Понимание кода этого модуля даст Вам большое представление о том, как работает интернет.

SQLAlchemy -кодируется с помощью Python, является популярным приложением в сообществе python для взаимодействия с базами данных.

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

Я бы посоветовал сначала выбрать язык или платформу. Например groovy на grails. Затем возьмите учебники. У каждой платформы есть «petshop example» или что-то вроде этого, где вы можете начать и следовать.

Если язык не имеет значения, попробуйте Mhonarc, который написан в perl.

Если вас интересует Python, вы можете посмотреть на Reddit или исходный код Django . Я знаю, что Django-это веб-фреймворк, но код действительно хорошо сделан.

Самый продвинутый фреймворк PHP, который я видел, с красивым кодом: FLOW3 , но мой ответ уместен только в том случае, если вы ищете серьезный фреймворк в качестве примера кода и уже знаете основы.

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

Если вы хотите учиться у abc, то w3schools.com-это лучший вариант.

Где вы можете найти множество файле настроек klipper, как АСП,asp.net, HTML и т. д. Кроме того, у вас будет много примеры есть.

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

Этот вопрос относится к https://stackoverflow.com/questions/9603/what-is-some-great-source-code-to-read который составляет список великих (в смысле читабельных, изящных. ) исходный код. Часть.

Мне нужно написать интерфейс браузера для приложения, работающего на встроенном одноплатном компьютере ( Gumstix Verdex для всех, кто заинтересован), поэтому я не смогу использовать какие-либо.

Есть ли какой-либо открытый исходный код или коммерческий язык веб-программирования, который функционирует так же, как васаби в Fog Creek? Например, вы пишете свое веб-приложение на этом.

Обучение написанию аддонов firefox я хотел бы улучшить стиль кодирования и избежать плохих методов кодирования. Я использую mozilla addon-sdk-1.14, и я ищу ссылку на открытый исходный код firefox.

Мне нравится читать открытый исходный код, чтобы увидеть, как были решены конкретные проблемы, или просто изучить, как создать хороший и чистый код. Мне было интересно, есть ли на самом деле.

Я прошел курс по C++ и сделал несколько небольших проектов по реализации структур данных в C++. Могу ли я найти not-so-difficult хороший проект с открытым исходным кодом C++, который следует хорошим.

Читать еще:  При установке торрента выдает ошибку

Каковы примеры хорошо разработанных функциональных (в отличие от объектно-ориентированных) веб-приложений, которые делают их исходный код доступным? В настоящее время я изучаю источник хакерских.

Я искал вокруг с открытым исходным кодом OCR для китайского языка. Но без какой-либо удачи редко появляется какой-то открытый исходный код OCR (для китайского языка), который можно использовать. Так.

Есть ли linux/ubuntu совместимый хороший открытый исходный код для 3G / 4G? Я ищу LGPL или MIT лицензии на основе открытого исходного кода (не GPL один).

Я нашел множество ресурсов для изучения программирования Java, но все они предполагают предыдущий опыт программирования на другом языке. Кто-нибудь знает хороший, желательно развлекательный, ресурс.

Исходный код

Исхо́дный код (также исхо́дный текст) — текст компьютерной программы на каком-либо языке программирования, который может быть прочтён человеком. В обобщённом смысле — любые входные данные для транслятора. Исходный код транслируется в исполняемый код целиком до запуска программы при помощи компилятора, или может исполняться сразу при помощи интерпретатора.

Исходный код либо используется для получения объектного кода, либо выполняется интерпретатором. Изменения никогда не выполняются над объектным кодом, только над исходным, с последующим повторным преобразованием в объектный.

Другое важное назначение исходного кода — в качестве описания программы. По тексту программы можно восстановить логику её поведения. Для облегчения понимания исходного кода используются комментарии. Существуют также инструментальные средства, позволяющие автоматически получать документацию по исходному коду — т. н. генераторы документации.

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

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

Исходный код — важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО, портирование либо слишком сложно, либо вообще невозможно.

Исходный код некоторой части ПО (модуля, компонента) может состоять из одного или нескольких файлов. Код программы не обязательно пишется только на одном языке программирования. Например, часто программы, написанные на языке Си, с целью оптимизации, содержат вставки кода на языке ассемблера. Также возможны ситуации, когда некоторые компоненты или части программы пишутся на различных языках, с последующей сборкой в единый исполняемый модуль при помощи технологии, известной как компоновка библиотек (library linking).

Сложное программное обеспечение при сборке требует использования десятков, или даже сотен файлов с исходным кодом. В таких случаях для упрощения сборки обычно используются файлы проектов, содержащие описание зависимостей между файлами с исходным кодом, и описывающие процесс сборки. Эти файлы также могут содержать параметры для компилятора и среды проектирования. Для разных сред проектирования могут применяться разные файлы проекта, причём в некоторых средах эти файлы могут быть в текстовом формате, пригодном для непосредственного редактирования программистом с помощью универсальных текстовых редакторов, в других средах поддерживаются специальные форматы, а создание и изменения файлов производится с помощью специальных инструментальных программ. Файлы проектов обычно включают в понятие «исходный код». В подавляющем большинстве современных языковых сред обязательно используются файлы проектов вне зависимости от сложности прочего исходного кода, входящего в данный проект. [ источник не указан 3649 дней ] Часто под исходным кодом подразумевают и файлы ресурсов, содержащие различные данные, например, графические изображения, нужные для сборки программы.

Для облегчения работы с исходным кодом, для совместной работы над кодом командой программистов, используются системы управления версиями.

В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то, как написан код, может сильно влиять на процесс сопровождения ПО. О качестве исходного кода можно судить по следующим параметрам:

  • читаемость кода (в том числе наличие комментариев к коду);
  • лёгкость в поддержке, тестировании, отладке и устранении ошибок, модификации и портировании;
  • экономное использование ресурсов — памяти, процессора, дискового пространства;
  • отсутствие замечаний, выводимых компилятором;
  • отсутствие «мусора» — неиспользуемых переменных, недостижимых блоков кода, ненужных устаревших комментариев и т. д;
  • адекватная обработка ошибок;
  • переносимость — возможность использования обработчика (компилятора, интерпретатора, транслятора) разных версий, или даже различных ОС;
  • возможность интернационализации интерфейса.

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

В таких случаях исходным кодом считается форма данной работы, предпочтительная для её редактирования. В лицензиях, предназначенных не только для ПО, она также может называться версией в «прозрачном формате». Это может быть, например:

  • для файла, сжатого с потерей данных — версия без потерь;
  • для рендеравекторного изображения или трёхмерной модели — соответственно, векторная версия и модель;
  • для изображения текста — такой же текст в текстовом формате;
  • для музыки — файл во внутреннем формате музыкального редактора;
  • и наконец, сам файл, если он удовлетворяет указанным условиям, либо если более удобной версии просто не существовало.
Ссылка на основную публикацию
Adblock
detector