Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (6) 1 2 [3] 4 5 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> The Wrong Way, Неверный путь.
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Дальше.

Цитата
A program in a non-structured language usually consists of sequentially ordered commands, or statements, usually one in each line. The lines are usually numbered or may have labels which allows the flow of execution to jump to any line in the program (like with the unpopular GOTO statement).

Then, in the sixties, structured programming emerged - mainly due to the famous letter by Edsger W. Dijkstra Go To statements considered harmful.

Structured programming is a programming paradigm that improves the clarity, quality, and development of software by making use of subroutines, block structures and loops. This is in contrast to using simple jumps such as the GOTO statement.

Later, procedural programming was derived from structured programming. Procedural programming is based upon the concept of “procedure call”. A “procedure call” is just another name for a “function call”. Procedures are also known as routines, subroutines or methods. A procedure simply contain a series of computational steps to be carried out. Any given procedure might be called at any point during a programs execution, including by other procedures or itself.

In the beginning all procedures were available to any part of a program as global data. In small programs this didn’t present a problem, but as things got more complicated and as the size of the program grew, small changes to one part of the program greatly effected many other parts.

Nobody was planning for changes in the program and lots of dependencies existed. A minor change to one procedure would result in a cascade of errors in lots of other procedures that depended on the original code.



Перевод:

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

Тогда, в шестидесятых, структурное программирование появилось в основном статье Эдсгера Дейкстры "Доводы против оператора GOTO"

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

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

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

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  [x] Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
A new technique evolved that allowed data to be divided into separated scopes called “objects”. Only specific procedures belonging to the same scope could access the same data. This is called data hiding or encapsulation. The result was much better organized code.

In the beginning objects were not called objects, they were just viewed upon as separate scopes. Later when dependencies were reduced and connections between procedures and variables inside these scopes were viewed upon as isolated segments, the result gave birth to the concepts of “objects” and “object-oriented programming”.

Later, mainly due to the development of Java, certain “buzzwords” arose and “a procedure” or “a function” was no longer called a function, but was renamed “a method” when it resided inside a separate scope. Variables were also no longer called “variables”, but were renamed “attributes” when they resided inside a separate scope.

So an object is in essence simply a collection of functions and variables now called “methods and attributes”.

The way methods and attributes are kept isolated inside a separate scope is by the usage of “a class”. A class, once it is instantiated, is called an object.

Objects can reference each other and by such a reference the methods (functions) inside can “communicate” with each other. Objects can also “inherit” methods from other objects thereby extending such, this is called “inheritance”. It is a way to reuse code and allow independent extensions of the software via public classes and interfaces. The relationships of objects give rise to a hierarchy. Inheritance was invented in 1967 for the programming language Simula 67.

Objects can also inherit methods from other objects and “override” these with added or changed functionality, this is called “polymorphism”.

How these different ideas are implemented vary greatly from programming language to programming language.

Object-oriented programming is about organizing code in another way than before. It is an extension of procedural programming and it is about hiding data (encapsulation) and avoiding a global scope. It is about extending functions by “borrowing” their blueprints without actually affecting the original code (inheritance). And it is about overriding functions without affecting the original code (polymorphism).

The object-oriented model makes it easy to build up programs by accretion. What this often means, in practice, is that it provides a structured way to write spaghetti code.

– Paul Graham in Ansi Common Lisp

The wrong way: Always use object-oriented programming.



Перевод:

Новая технологя развивалась, что позволило разделить данные на разные области видимости, называемые "объектами". Только конкретные процедуры, относящиеся к одной области видимости, могли получить доступ к данным той же области. Это называется скрытие данных или инкапсуляция. Результатом стала намного лучшая организация кода.

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

Еще позднее, в основном за счет развития Java, возникли некоторые "словечки", а процедуры и функции стали называться методами, если они находились внутри границ объекта. Переменные тоже больше не называют "переменными", они были переименованы в "атрибуты", если они находились в отдельной области видимости.

Таким образом, объект, по сути, это просто набор функций и переменных, которые теперь стали называться "методами и атрибутами".

Методы и атрибуты изолированы внутри отдельной области с помощью использования "класса". После создания экземпляра класса, он называется объектом.

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

Объекты могут также наследовать методы от других объектов и "переопределить" их с добавлением или изменением функциональных возможностей, это называется "полиморфизм".

Эти идеи варьируются в разных языках программирования.

Объектно-ориентированное программирование, это совершенно другой способ организции кода, чем был раньше. Это является продолжением процедурного программирования, с добавлением сокрытия данных (инкапсуляции) и избеганием глобальных областей видимости. Речь идет о расширении функций путем "заимствования" своих схем и чертежей, фактически не затрагивая исходный код (наследование). И речь идет о переопределении функций, не затрагивая исходный код (полиморфизм).

Объектно-ориентированная модель позволяет легко наращивать программы за счет аккреции. Это часто означает, что на практике она обеспечивает структурированный способ записи спагетти-кода.
© Пол Грэм в Ansi Common Lisp

Неправильный путь: Всегда использовать объектно-ориентированное программирование.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
Being afraid of other peoples code

An argument often expressed for the usage of a framework is that people don’t want to deal with codebases that has been written from scratch by other people.

This is however a strange mentality, mainly encountered amongst web developers in the PHP community, it’s one that exudes a lack of professionalism and experience.

Writing software and dealing with other peoples code is normal, it’s part of the daily work of a professional programmer, it’s not something to be afraid of.

A professional programmer doesn’t look at other peoples code and start whining about how he or she is at the complete mercy of the former programmer, who perhaps is no longer associated with the company or project, and if only the former programmer had used framework A or framework B the day would have been saved.

This is not the mentality of a professional programmer. Nobody does this.

Perhaps the low barrier to entry in PHP web development plays a part in this kind of mentality. Regardless, it is a sign of a person being in the wrong line of work.

A great part of programming deals with people having to work with other peoples code. It’s part of the work trying to improve existing codebase and sometimes that involves a complete re-write.


Перевод:

Опасайтесь кода других программистов.

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

Этот странный менталитет в основном встречается среди веб-разработчиков PHP сообщества, и он говорит о недостатке профессионализма и опыта.

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

Профессионал не начнет ныть, что он теперь полностью зависит от кода бывшего программиста, который, возможно, больше не связан ни с компанией, ни с проектом, и что вот мол если бы он использовал фреймворк A или B, то это сэкономило бы целый день работы.

Это не менталитет профессиональных программистов. Ни кто из них так не делает.

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

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  [x] Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
Take note from the great masters of programming, read the book Coders at work - Reflections on the Craft of Programming.

Some of the largest and most successful codebases in world are codebases that has been developed by hundreds of people who have never even met each other, codebases developed without the use of any kind of framework, codebases done entirely in a procedural programming language without the use of anything but the procedural paradigm, and they wouldn’t dream of doing it differently.

The Linux Kernel consist of more than 20 million lines of code all written entirely using procedural programming by more than 14.000 participants without the usage of any kind of framework.

The different BSD flavors and most of the Linux GNU userland has been written entirely using procedural programming without the use of any kind of framework.

The same goes for hundreds of Open Source projects around that world that eventually was abandoned by the original programmer(s) only to be picked up by other skillful programmers. Many of these projects had very little documentation (if any at all), no comments in the codebase, and no guidelines or help to offer at all.

The entire PHP codebase is done in C, a pure procedural programming language, without the use of any kind of framework what so ever.

Whenever you define a class in PHP or whenever you fire up that favorite PHP framework of yours, your running on someones else’s pure procedural work!

Sure, there exists such a thing as horrible code, code that perhaps wasn’t designed from the onset, or code that perhaps has outgrown itself many times but the client didn’t want to deal with a re-write, code that’s so bad you cannot make heads or tail of it any longer, but no kind of framework would have prevented this situation. This is often the natural growth process of a program. Eventually any kind of framework would have been torn to pieces anyway.

And sure there exists horrible spagetti code, but nobody produces horrible spagetti code on purpose. Sometimes this is a result of lack of experience, often times it’s the clients fault because they change the specifications several times in the middle of development, either way in both cases, even if a framework was used, the result would still be spagetti code, and no matter how much of the object-oriented paradigm was used, the result would still be spagetti code.

As programmers we all try to prevent these situations, but this is normal, this is the art of programming, this is part of what it means to be a programmer!

The wrong way: Being afraid of other peoples code.


Перевод:

Посмотрите, что говорят великие программисты в книге "Кодеры за работой. Размышления о ремесле программирования".

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

Ядро Linux состоит из более чем 20 миллионов строк кода, написаных полностью на процедурной парадигме. Его разрабатывали более чем 14.000 участников, ни используя никаких фреймворков.

Различные BSD пакеты и большинство пользовательских Linux GNU были написаны полностью с использованием процедурного программирования, без фреймворков.

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

Вся кодовая база PHP, раз на то пошло, сделана на C, чистой процедурной парадигме и без единого фреймворка.

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

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

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

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

Неправильный путь: Бояться чужого кода.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
Follow the PHP-FIG standards

The FIG stands for “Framework Interoperability Group”.

The PHP-FIG was created by a number of framework developers at php|tek in 2009. Since then various other members have applied and been voted in, increasing the size of the group from the first 5 to over 20.

A lot of controversy exists regarding the PHP-FIG. Some people consider the PHP-FIG the best thing that has happened to the PHP community since PHP itself while others considers the group as something best to be forgotten.

One of the problems with PHP-FIG is that it presents itself like this in their FAQ:

The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can work together. Our main audience is each other, but we’re very aware that the rest of the PHP community is watching. If other folks want to adopt what we’re doing they are welcome to do so, but that is not the aim. Nobody in the group wants to tell you, as a programmer, how to build your application.

However, when we view the work of several members of the group, we can clearly see that the objective is quite contrary to the above statement. These members work tirelessly in an attempt to make PHP-FIG become an accepted “PHP standards group”, which also was the original name of the group. They do this by classifying the work of the PHP-FIG as “Modern PHP” in their books, on their websites, blog-posts, forums, etc., and by classifying other ways as backwards.

One of the problems with the PHP-FIG is that even though many frameworks and Open Source projects has adopted several of their standards, these standards mainly deal with problems from a “framework perspective”, which renders them pretty unusable in many real-life industry situations.


Перевод:

Следуйте стандартам PHP-FIG

FIG расшифровывается как Framework Interoperability Group (Группа по совместимости фреймворков).

PHP-FIG была создана рядом разработчиков фреймворков на конференции php|tek в 2009 году. С тех пор к ним обратился и проголосовали за стандарт еще ряд разработчиков, и группа увеличилась с 5 до 20 участников.

Вокруг PHP-FIG существует много споров. Многие считают, что это лучшее, что случилось в PHP сообществе, после самого PHP, другие считают, что это нужно забыть как страшный сон.

Одна из проблем, связанных с PHP-FIG, это то, как они сами себя представляют в своем FAQ:

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

Однако, когда мы рассматриваем работу некоторых членов группы, мы можем ясно видеть, что цель совершенно противоречит приведенному выше. Они неустанно пытаются сделать из PHP-FIG "Группу PHP стандартов". Это, кстати, и было их первоначальным названием. Они делают это, позиционируя свою работу "современным PHP" в своих книгах, на сайтах, на различных форумах, блогах и так далее, а так же классифицируя все остальные направления, как устаревшие.

Одной из проблем, связанных с PHP-FIG является то, что хотя многие фреймворки и опенсорсные проекты приняли некоторые стандарты группы, эти стандарты в основном касаются проблем с точки зрения фреймворков. А это делает их непригодными во многих реальных практических ситуацииях.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
Many people develop software for the industry that has to be extremely efficient, secure, and cost-effective, software that customers are willing to buy and use. They cannot be bothered with standards that has to conform to the needs of framework fanatics. If they tried to be it would be a disaster for business.

If some kind of standards group needs to be created it has to reflect the interests of the entire PHP community, not just framework and Open Source CMS project developers. It has to be represented by the developers of the PHP programming language itself and it has to be represented by a much larger membership with the right to vote.

If you choose to adopt the standards developed by the PHP-FIG, you have to understand that some of these standards - such as the autoloader standards PSR-0 and PSR-4 and several other standards - has a direct effect upon how you code your software.

Many industries demand highly scalable, run-time critical, and cost-effective software that simply cannot be developed using these standards of the PHP-FIG.

The wrong way: Following the PHP-FIG beyond the PSR-1 and PSR-2


Перевод:

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

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

Если вы решили принять стандарты, разработанные PHP-FIG, вы должны понимать, что некоторые из этих стандартов - таких, как стандарты автозагрузчика PSR-0 и PSR-4 и ряд других стандартов, оказывает прямое влияние на то, каким будет ваш код в результате.

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

Неправильный путь: следовать стандартам PHP-FIG, за исключением PSR-1 и PSR-2.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  [x] Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
Neglecting security

The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.

– Seymour Cray on defprogramming.com

Secure coding is the practice of writing programs that are resistant to attack by malicious or mischievous people or other programs. Secure coding helps protect data from theft or corruption. In addition, an insecure program can provide access for an attacker to take control of a server or a user’s identity, resulting in anything from a denial of service to a single user to the compromise of secrets, loss of service, or damage to the systems of thousands of users.

Every computer program is a potential target for a security attack. Attackers will try to find security vulnerabilities in your applications. They will then try to use these vulnerabilities to steal secrets, corrupt programs and data, and gain control of servers and networks. Your customers property and your reputation are at stake.

Security is not something that can be added to software!

An insecure application may require extensive redesign to secure it. You must identify the nature of the threats to your software and incorporate secure coding practices from the beginning and throughout the planning and development of your application.

Securing critical software resources is more important than ever as the focus of attackers has steadily moved toward the application layer. A 2009 SANS study found that attacks against web applications constitute more than 60% of the total attack attempts observed on the Internet.

PHP is unusual in that it is both a programming language and a web framework at the same time. This means that PHP has a lot of web features built-in to the language that makes it very easy to write insecure code.


Перевод:

Пренебрежение безопасностью

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

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

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

Безопасность, это не то, что можно добавить к программному обеспечению!

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

Защита критически важных ресурсов программного обеспечения сегодня является важным, как никогда, так как внимание злоумышленников постоянно перемещается на прикладной уровень. Исследование, проведенное SANS 2009 показало, что атаки на веб-приложения составляют более 60% от общего количества атак, наблюдаемых в Интернете.

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата
Secure by default

Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration.

– Ray Ozzie

In order for applications to be designed and implemented with proper security requirements, secure coding practices and a focus on security risks must be integrated into the day-to-day operations, thoughts, and the development processes themselves.

Generally, it is much less expensive to build secure software than to correct security issues after the software package has been completed, not to mention the costs that may be associated with a security breach.

The wrong way: Not developing secure software by default.


Перевод:

Безопасность по умолчанию

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

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

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

Неправильный путь: не разрабатывать приложение безопасным по умолчанию.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Всё, короче. FAQ у майловцев сопру, надоело. smile.gif

Ни кто ничего поправить не хочет? Вечером попробую закинуть к ним на гитхаб.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Another Reality  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 124
Пользователь №: 41606
На форуме: 1 год, 4 месяца, 19 дней
Карма: 5




Цитата (twin @ 31.08.2016 - 14:14)
Всё, короче. FAQ у майловцев сопру, надоело. smile.gif

Ни кто ничего поправить не хочет? Вечером попробую закинуть к ним на гитхаб.

Может стоит хоть небольшой рерайт сделать, а то мейловцы обидиться могут ? wink.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Ну html буду делать, немного напущу туману)))


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата
Могу. Но зачем?

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

Если не использовать фреймворк, нужно собрать что-то похожее для обработки входящего запроса, компоненты request, response, router, errorHandler и прочее. В общем случае, выйдет тот же фреймворк, но хуже, по естественным причинам, один программист против сообщества программистов, нулевое время жизни против годами существующего решения.

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

Теперь хочу задать вопросы:

1. Почему таких решений как набор независимых symfony компонентов нет в мире процедурного программирования?
2. Зачем нужно писать свой велосипед на plain php, а не взять готовое (фреймворк или некоторые его компоненты)?

И вопрос "зачем", отпадает сам собой, если согласен с фактом, что между php и веб-приложением, должно быть что-то еще. Если не согласен, то фактически признаешь спагетти код, как нечто нормальное.

ps. Перенесите во флуд, там нельзя писать.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователь сейчас на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15561
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 2 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата (Guest @ 31.08.2016 - 13:30)
ps. Перенесите во флуд, там нельзя писать.
Наверное нужно зарегистрироваться...
Пока переносить не буду, тем более что перевод уже закончился. Ну и по теме теперь.

Цитата (Guest @ 31.08.2016 - 13:30)
Показать на практике, что это проще поддерживать, чем на ооп.

Другими словами ты фактически предлагаешь мне написать фреймворк на процедурах. Вот я и не понимаю, зачем? Это же заведомо неверно, пытаться показать другую крайность. Почему обязательно plain php? Почему нельзя комбинировать?

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

Позже был еще один, для полноты сравнения. Не увидел я преимуществ.

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

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22691
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 28 дней
Карма: 599




Guest
Цитата
И вопрос "зачем", отпадает сам собой, если согласен с фактом, что между php и веб-приложением, должно быть что-то еще. Если не согласен, то фактически признаешь спагетти код, как нечто нормальное.

Задача: вывести блок комментариев на сайте. Делается так:
<?php
$res = mysqli_query($link,"SELECT * FROM `comments` ORDER BY `id` DESC");
while($row = $res->fetch_assoc()) {
echo '<div>'.$row['author'].' <span>'.$row['date'].'</span></div><p>'.$row['text'].'</p>';
}

Я выполнил задачу и сделал веб-приложение. Где в данном месте спагетти, и как бы ты реализовал без спагетти этот код?


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата
как бы ты реализовал

Я бы сначала подумал.

Цитата
Где в данном месте спагетти

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

Я не хочу писать такой код, тем более копаться в нем. Такой код меня расстраивает.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (6) 1 2 [3] 4 5 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса