О работе

Добавлен , опубликован
Программирование
Язык:
Delphi
Добрый вечер, читатели.
Давно не было постов, началась учеба, куча проблем, да и еще думаю не скоро появятся какие-нибудь интересные посты. Ну собственно как я и обещал, сегодня речь пойдет о моей работе, которой я занимался летом и в принципе довольно таки успешно. Приступим.

Введение

Ну собственно с чего все началось. Уже прошла неделя с того, как я приехал домой и страдаю фигней. Ну собственно понял, что это пустая трата времени и решил подыскать себе работу. Да и еще предки начали капать на голову, что нифига не делаю и начали пихать меня к отцу на работу мерчем ><. А я принципиальный, не хочу работать не по своей специальности. Ну и пошел на свой давно излююбленный сайт freelance. К сожалению за последний год они очень сильно испортились и превратились уже не в площадку для поиска боты, а в площадку по выкачиванию денег, как с заказчиков, так и с исполнителей. И с каждым разом ситуация становиться все хуже и хуже. Ну в общем сидел на том сайте и подыскивал себе заказчика. Прошел день, два, а там и неделя, а работы все ни как не могу найти. Уж даже начал сомневаться, что у меня получиться что-то найти и придется соглашаться с отцом. И вот очередной день, как обычно захожу на сайт и вижу заказ без предложений. Да еще и причем из той области в которой я в основном и работал все время, только масштабы были куда меньше, соответственно и бюджет. Кроме того, основным требованием заказчика было Delphi, а это очень хорошо, т.к. с этим языком я работаю очень давно уже. В общем оставил заявку и стал ждать.

Суть проекта

На следующий день мне приходит письмо от заказчика, что он согласен на мои условия. В итоге, я получаю 50% предоплаты и какое-то странное ТЗ, как он его назвал, хотя ТЗ там далеко и не пахло. Но суть состоит вот в чем:
Программа должна была сканировать первую 100 выдачи в поисковых системах, таких как Яндекс и Google по нужному запросу и определяет позицию сайта. А так же определяло тИЦ и PR сайта, и статистику wordstat по запросу.
На все про все мне отводилось 3-4 дня

Начало работы

Ну что первый день я по изучал как происходят запросы на яндекс, гугл и как определить позиции. Ну собственно на этом все и закончилось. На второй день я уже перешел непосредственно к разработке ПО. Набросал схематичный дизайн, разработал и реализовал базовую архитектуру многопоточного приложения. В общем все по мелочи было. Вот на следующий день я уже занялся основным функционалом. Потратил 2 дня на это все, пока прикрутил систему обхода капчи на яндексе, пока разобрался с системой поиска в гугле, там оказалось все куда хитрее, чем я думал в первый день. В общем структурировал интерфейс и придал ему более юзабельный вид. Отправил заказчику. В принципе он был доволен. Но мне больше понравились такие его слова:
Зачем ты сделал вывод результата в таблицу через TStringGrid надо было использовать TListView
Да спасибо, что указали это в вашем "ТЗ". В общем и еще кучу мелких претензий. Ладно стиснув зубы продолжил кодить. Благо правильная архитектура дала быстро исправить все это. Отправил. Очередные просьбы. Теперь надо чтобы показывалась разность между предыдущим сканированием. Ну ок ладно сделали, просто добавлением к позиции строки с разностью. А вот дальше меня вообще убило напрочь.
Знаешь, как то не очень смотрится, надо бы наверное все это сделать в цвете. Если запрос поднимается, то пускай будет зеленым, а если опускается - красным. И те, что не были найдены пускай будут серыми.
>< Начинаю нервничать, так как на WinAPI это жутко не удобно делать по сравнению с тем же WPF. Кто знает, тот поймет о чем я, а кто не понял ждите, как-нибудь напишу в чем преимущества написания на WPF. В общем трачу еще полтора суток без сна, чтобы все это сделать. Сделал, выдохнул, отправил, и... О да, он доволен. Просит исходники и высылает еще 25% от изначального бюджета и того у меня в кармане уже 75% бюджета от проекта. А это 2300 рублей, и всего лишь за неделю, в принципе для меня это вполне хорошо, т.к. раньше за месяц заработал лишь тыщу (нет я не о той тыще, что вертится тут в блоге) . Ждем пока заказчик все проверяет, затем исправляем мелкие баги, погрешности и маленькие добавления.
Отлично теперь все довольны. Заказчик получает исходный код последних изменений, а я оставшиеся 700 рублей. В принципе сейчас я жалею, что не запросил большую цену, но в принципе для меня это нормальная сумма, тем более за неделю. А впереди еще все лето. Выходит первая версия программы, а называется она Majento Position Meter. Я предлагаю заказчику вести проект дальше за скромную плату 500 рублей в день, причем именно в рабочий день. Он отказывается. Говорим друг другу спасибо и расходимся.

Продолжение истории

В общем спустя пару дней отдыха, приходит письмо от него, что необходимы улучшения в программе, соответственно за деньги (Все же приполз). Ну а что, я не против, делать все равно нечего, а лишние деньги не помешают. Что было сделано в новой версии
  • устранена утечка памяти и лишняя загрузка процессора
  • устранены некорректные результаты сканирования отдельных запросов
  • добавлен сбор статистики по Яндекс.Wordstat c "" и без
  • добавлена возможность пересканирования отдельного запроса
  • добавлена возможность пересканирования всех сайтов одновременно
  • добавлена настройка регионов для Яндекс (не более 5)
  • добавлены дополнительные настройки для сканирования Гугл
  • добавлен экспорт данных в CSV формат
Суть данной версии была в том, что сканирование теперь производится с выбором региона, и можно более детально настроить запрос для поисковой системы гугл. Ну так же мелкие доработки. Насчет самого первого пункта. Получилась так, что я запустил отдельный поток, который крутился без дела и забивал тем самым все ядро процессора, на котором он был запущен, от куда все и беды. Исправил обычной задержкой в 100 мс.
Еще один забавный факт. Заказчик требовал, чтобы запросы производились с задержками между друг другом. Для этого я сделал отдельный пунт в настройках, где можно было указать величину задержки, она была одинаковой как для запросов на гугл, так и для запросов на яндекс. На каждый запрос выделяется отдельный поток и производится запрос на яндекс и гугл поочередно в пределах этого потока. Что потребовал заказчик. Сделать так, чтобы можно было указывать разный интервал между запросами для яндекса и для гугла. Ну, а я что, попытался объяснить что смысла нет, но он все равно настоял на своем. Ну и я тоже не дурак, взял и вместо того чтобы переписывать пол программы, взял и брал среднее время ожидания. Даже с исходным кода проекта, который он читает постоянно он не заметил этого. Ну и отлично. Проект сдан под версией 1.1, деньги получены, оба довольны.

Итог

В общем сейчас программа находиться под версией 1.2 и ведется разработка версии 1.3, но в связи с проблемами и занятостью она еще не увидела свет, хотя большая часть денег уже заплачена за нее. И кроме того, заказчик уже готов поручить написание версии 1.4. И при этом вот что он мне пишет
Хотя я бы не хотел тебя менять на другого программера.
Делаем выводы сами из этой фразы. В итоге можно сказать, что я нашел себе постоянную работу, и если бы тратил чуть больше времени на это и имел бы больший опыт в проектах с бюджетом на разработку, я бы заработал куда больше денег. Но в принципе для меня это очень хорошо. Получил как опыт в программировании, так и в разработке крупных проектов, а так же опыт в общении с заказчиком.
Всем удачи и спасибо за прочтение.

Дополнительный материал:
0
20
12 лет назад
0
"крупных проектов" - вот это порадовало хотя всё относительно канешн
в кратце можеш расказать как брал данные из поисковиков?
0
25
12 лет назад
0
Есть подозрение, вручную парсил.
Python + Grab + PyQuery <3
под руби вроде под евентмашиной что-то сходное крутицо.
0
34
12 лет назад
0
делаю нечто похожие, и думаю на что потратить свободное от работы время, на фриланс или допилы хгма
0
29
12 лет назад
0
Hellcore, а цитирования до сих пор нет =( Надо уметь распределять время. Я его грамотна распределял и на баловство с DX11 и на работу, и на баловство с другими штуками и на просто отдых
Q w e r t y, да руками парсил, хотя для яндекса есть возможность заюзать сервис Yandex XML
XimikS, условие было, разработка только под Delphi 7 и ICS
0
34
12 лет назад
0
Hellcore, а цитирования до сих пор нет =
виноваты гад и забада, патч уже 2 недели лежит.
0
29
12 лет назад
0
Hellcore, ну ладно поверю тебе, что ты сделал его. Ждем гада. И кст, неужто кет не может лить апдейты?
Q w e r t y,
"крупных проектов" - вот это порадовало хотя всё относительно канешн
Ну естественно. Просто первое что я делал по бюджету было не более 400-500 рублей и делалось за 2-3 часа
0
29
12 лет назад
0
А я на стройке за 20 дней 15к заработал =(
0
20
12 лет назад
0
А у нас на арбузах по 3к в день зарабатывают =( Но поля большие, рядов много, проект крупный..
А еще на монтажных работах - по 2к за выезд, при сноровке один займет ну часа два от силы
0
34
12 лет назад
0
Hellcore, а цитирования до сих пор нет =(
на деве пока только.
1
29
12 лет назад
1
Hellcore, не понял смысла второго скрина
1
34
12 лет назад
1
пищу аддоны для своего бесплатного чата на заказ. Пока заказов на 150$+немного с доната. Релиз был неделю назад.
0
29
12 лет назад
0
Hellcore, хммм... забавно
Чтобы оставить комментарий, пожалуйста, войдите на сайт.