Начинающий IT-шник

rtfm, профессия называется “Software Quality Assurance Engineer”

И для чего же? Сравню ответ с ответом одного гуру =)
Не удержался, напишу наперёд - для упрощения совместной разработки.
А про люди мыслят объектами или про естественность (в мире всё объект) это всё маркетологи придумали.

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

Всем привет!

Вот уже прошел ровно год с окончания моих курсов по тестированию. И много месяцев с первого поста в этой теме. С того времени я поменял еще два рабочих места и качественно вырос в своих знаниях. Как теоретических, так и практических. Удалось еще поработать на паре крупных проектах по автоматизации, а так же позаниматься ручным тестированием, что мне показалось не совсем веселым занятием.
Сейчас я работаю над крупным веб-проектом одного американского заказчика. Команда у нас интернациональная. Я перестал метаться по языкам программирования и технологиям и окончательно остановился на Java. Ну, еще Python факультативом)
Сейчас мой стек - это: Java, Selenium, Maven, TestNG, GIT, Jenkins, Page object, Selenide. К этому добавилось немного JS.
Однако, я чувствую, что настало время из автоматизаторов переходить в Junior Java developer. Потому что многие компании хотят от автоматизатора не только автоматизации UI, но и API, а так же зачем-то unit-tests.
Поэтому, как посчитаю, что мои знания по Java Core вполне стойкие, начну знакомиться со Spring, Hibernate, JDBC

1 лайк

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

Для упращения совместной разработки?? Серьезно?? Это абсолютно не так и не имеет с этим ничего общего…
Объектно ориентированное програмирование или ООП было логическим развитием програмирования вообще. Когда стал вопрос написание серьезных программ, например таких как Windows, разработчики поняи что, единая программа получиться просто гиганстской и не поворотлиивой. Так же было подмечено что, в практический даже самых маленьких программах очень часто необходимо выполнять одни и те же блоки кода… До ООП эти блоки кода N-е кол-во раз повторялись в коде программы…
Соответственно логично было создать отдельные подпрограммы которые бы вызывались из тела основной программмы в нужный момент и выполняли свой код. Это и есть ООП.

Вот классический пример которые рассказывают всем школникам для понимания, это окна в Windows, вы можете открывать многократно скажем окно с файловой стрктурой диска C:, если бы не было ООП то каждое такое открытие было бы последовательно описано в коде программы…один и тот же код раз за разом…это конечно довольно грубый пример, но он не очень далек от правды.

Так что, ни о каком совместном написании больших программ речи не шло, все более бонально речь шла просто о возможности/реализации написании больших и сложных программ.

Фактический та же логика была у технологии ASP от Mirosoft.

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

Хрень полная ваш пример. На самом деле это пример вызова подпрограмм. ООП тут никаким боком не валялось.

ООП - это в первую очередь наследование, полиморфизм и инкапсуляция.

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

1 лайк

Браво, “ООП - это в первую очередь наследование, полиморфизм и инкапсуляция”, И ведь ни чего не скажешь, верно подмечено, это действитеьно так. Но вы если потрудитесь ПОДУМАТЬ, прежде чем писать “хрень” то, все получиться, и не будет противоречить моим словам. Наследование, полиморфизм и инкапсуляция это действительно отличитеьные черты ООП, но это инструменты реализации идеи. О том почему к этому пришли и для чего, я описал выше, конечно я это описал своими словами. Но мне кажется суть причины побудивших создавать это мифический ООП прослеживается. И он именно такой.
Мое мнение, если понимать суть вещей, то они станут более понятными. А построен ООП действительно на наследовании, полиморфизме и инкапсуляции.

Но вот если вы действительно верите в то, что ООП создан в первопричине для совместной разработки… то тут думаю наши с вами десскусии бессысленны…

“ASP, хоть и основана на OOП, вообще из другой оперы.В первую очередь - это технология создания динамических вебстраниц.”

Тут я вообще не понял, что вы этим хотел сказать. Да это совершенно другое, может вы не заметили но тут как бы даже названия разные. Уверен всем и без вас ясно что это совсем разные вещи. Или что, вы мне пытаетесь открыть глаза на то что ASP - Active Server Page это динамический созданые вэб страницы созданные на стороне сервера?? Спасибо не нужно, отлично это понимаю и сам.

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

Причина появления технологии ASP в том, что у разработчиков сайтов появилась задача создания довольно разветленных и объемных сайтов. А создание таких сайтов, только с использованием html довольно затратное и нудное дело (не знаю делали ли вы когда-нибудь подобные вещи с исползованием только html, но я делал, и очень понимаю желание создать такую технологию). Так вот, мне кажется, это сугубо мое мнение, что причины схожи, не смотря на то что данные технологии относятся к совсем разным направлениям.
Огромное колличство страниц с html разметкой, зачастую практический ни чем не отличающихся друг от друга…

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

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

Феерическая хрень. Это я про “если бы не было ООП”.

При всём при этом в WinAPI никакого ООП нет (не считая позднее появившегося COM). :slight_smile:

Хотя всё это очередная война тэгов. Хэндл - тот же указатель на класс, по сути. Callback функция - полиморфизм. Всё новое это причёсанное для удобства старое.

Ну, COM в Windows был почти с самого начала. Сначала под названием OLE.
Начиная c Win8 есть 100% объектный WinRT, но им, по моему, мало кто пользуется.

Как таковой - да. Но так что бы открывать окна и работать с файловой структурой - всё это как было с первой версии так и осталось. Была ещё ОО надстройка MFC, но это лишь надстройка. Это я к тому что и без ООП реализовывали сложные системы.

Не хочу и Вас разочаровывать, но так в жизни все и происходит. Или вы и в прям стане рассказывать что, ООП появилось за “один день” и автор ему некий конкретный человек? Что ООП это что-то до этого не виданное, как скажем открытие Америки?
Конечно, структурное программирование появилось до ООП, а сам термин ООП описывающий принципы, структуры, приемы, цели и задачи появилось значительно поже, и конечно уже обросший серьезными идеями. И это, на мой взгляд, несомненно лежит в его основе. Ряд людей пошло по пути развития структурного программирования создавая кучи классов, и использование налседования от них. А часть людей продалжало использовать процедурное программирование, что тоже работает.
Право даже не знаю, что конкретно вас так раздражает (в хорошем смысле этого слова) в моем пояснении целей, это абсолютно простое может быть даже детское объяснение того почему пришли к данному подходу.

А вопрос что за Идея, так это на поверхности, идея о том как структурировать код в больших программах - 10-ки тысяч строк и управлять им. Свод правил и инструментов как добиться этого, подход ооп.

Тут да, загнул так что да… что выражение “феерическая хрень” сойдет. Беру свои слова назад. Спасибо. Согласен. Мысль иная конечно была, но видимо, в связи со скудностью речи вышло это. Так сказать мысль закрутилась в неожиданный виток и вылислась в “мудрость”. Еще раз спасибо.

Вы видимо имеете к среде програмирования непосредственное отношение, просто для праздного интереса, какими языками увлекаетесь?

Да, да. Признаю, про “без ООП”, это жесткий перегиб. Указал выше.

Не надо мне приписывать то, чего я не говорил.

Я не увлекаюсь языками. А решаю конкретные задачи. В соответствии с задачей и выбирается язык программирования.
А владею я разными языками. Хотя С++ один из самых первых. Еще с тех пор, как он назывался “С с классами”

Начиная с Win95 появилось так называемое Windows Shell API. Практически полностью основанное на COM интерфейсах. Там и с окнами и с файлами без проблем можно было управляться.
https://msdn.microsoft.com/en-us/library/windows/desktop/bb773177

Shell это лишь одна из надстроек к OS.

Граждане, а есть для java такая же картинка как и для c#, где показан путь начинающего java программиста и его дальнейшие возможные ступени развития?

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