Автоматты аударма пайдаланылды

Әзірлеушілер жұмыс істеуге жалқау: компаниялар өздерінің ат жүйесін қайта құру үшін қалталарын қалай айналдырады

Сәлем! Менің атым Дмитрий Панкин, мен Resolventa компаниясының негізін қалаушымын. Біз клиенттер үшін күрделі ат өнімдерін жасаймыз: маркетплейс сайттары, B2B порталдары, жеке кабинеттер, қосымшалар, арнайы CRM және ERP жүйелері.

Компания өзінің ат жүйесін жаңартқысы келгенде, оны бағдарламашылардың көптеген зиянды кеңестері күтеді: жою, тастау, басқа тілде қайта жазу. Бұл тәсіл 99% тек әзірлеушілердің өздері үшін пайдалы, оның кесірінен бизнес бұзылады. Енді толығырақ.

Бірде-бір ат жүйесі тек бір техникалық қолдауда мәңгі жұмыс істей алмайды — интернет-дүкен де, CRM жүйесі де, жеке кабинет те. Сондықтан қызмет Ерте ме, кеш пе толық жаңартуды немесе ауыстыруды қажет етеді.

Бизнес өсті немесе өзгерді. Кейде кәсіпкердің басында шағын "гараж" жобасы бірнеше департаменттері бар үлкен компанияға дейін өседі деп болжау қиын. Сондықтан ат жүйесіне арналған техникалық тапсырма көбінесе ол әрқашан кішкентай болатындай жазылады. Әзірлеушілер кейінгі масштабтауды ескермейді:

  • автоматтандырылған сынақтарды пайдаланбаңыз;
  • тұрақты сәулет жасамаңыз;
  • кросс-кодты тексеруді жүргізбеңіз;
  • кодтың тазалығын қадағаламаңыз.

Бастапқыда бұл тәсіл тіпті тиімді: сіз қызметтің минималды өміршең нұсқасын Тез құра аласыз және онымен бірге нарыққа нақты жағдайда сынақтан өткізе аласыз. Бірақ егер масштаб ұлғайған сәтті жіберіп алсаңыз, шексіз қателер шыға бастайды, қызмет сұраныстарды баяу өңдейді және деректер көлемін өңдеуді тоқтатады.

Технология ескірген. Ат жүйесі жазылғаннан бері бағдарламалау тілінің бірнеше жаңа нұсқалары шығуы мүмкін-сіздің нұсқаңыз ескіреді және ресми қолдаусыз аяқталады. Сонымен, ондағы осалдықтар жойылмайды және жаңа мүмкіндіктер қосылмайды. Бұл кез-келген бизнесті дамыту және масштабтау үшін өте маңызды, сондықтан сіз қызметті жаңартып, тілдің жаңа нұсқасына көшуіңіз керек.

Біз Resolventa-да PHP-ді қолданамыз, сондықтан мақалада біз бұл туралы сөйлесетін боламыз. Мысалы, PHP нұсқасы 7.0 нұсқасынан төмен болса, қызметті жаңартуды ұсынамыз. Ескірген құрылымдарға да қатысты, мысалы: Yii, CodeIgniter, CakePHP, Symfony 2.0.

Сіз қолданатын тілдің нұсқасына қолдау көрсетілетінін түсіну үшін ресми сайттағы шығарылымдар тізімін қараңыз. PHP жағдайында сізге кіру керек php.net, ал Symfony шеңбері үшін-қосулы symfony.com.

Скриншотта жобалардың бірін жаңарту кезінде PHP нұсқасын қалай жаңартқанымыздың мысалы келтірілген. Нәтижесінде сайт 2,5 есе жылдам жүктеле бастады

Жобаны жеткіліксіз білікті команда жазды. Қызмет бастапқыда абайсызда және асығыс жазылады. Нәтижесінде код лас, бағдарламашылар рефакторинг пен ревью жасамайды-уақыт жоқ. Бұл тек әзірлеушілердің ғана емес, менеджерлердің де кінәсі болуы мүмкін: олар тым қысқа мерзімдерді белгілеп, команданы үнемі жаңа қателіктерге итермелеуі мүмкін.

Кейде Бизнестің басында тәжірибелі әзірлеушілер тобына ақша жоқ — және ат жүйесі қол жетімді бағаны ұсынатын адамнан тапсырыс береді. Қызмет кішкентай болса да, кодтың төмен сапасы таңқаларлық емес, бірақ бизнестің дамуымен құлдырау пайда болады. Бұл тәсіл дұрыс емес дегенді білдірмейді. Тек команда уақытында жауап бермеді және проблемалар туындағанға дейін жүйені жаңартпады.

Сонымен, егер сіздің қызметіңіз туралы жоғарыда айтылғандардың бірі болса, оны жаңарту қажет.

Елестетіп көріңізші: "тасымалдау" логистикалық компаниясы қызметкерлерге арналған ішкі жүйе деректердің үлкен көлеміне байланысты баяулай бастағанын байқады және бұл мәселені ат агенттігіне қарады. Сонымен қатар, ол жеке кабинетте жаңа функцияны қосып, қызметті смартфоннан ыңғайлы пайдалану үшін жауап беретін нұсқасын жасауы керек, бірақ қазіргі технологиялар бұған жол бермейді.

Агенттікте 90% ықтималдықпен келесі диалог өтеді:

- Сіздің қызметіңіз қазір қай стекке жазылған?

- Әзірлеушілер PHP-де дейді…

- Демек, проблемалар. Барлығын заманауи түйінге нөлден жазайық.js. Бұл кодты клиент жағында да, серверде де жазу үшін бірыңғай JavaScript тілін пайдалануға мүмкіндік береді. Нәтижесінде ол әлдеқайда жылдам болады, ал алдыңғы және артқы жағындағы әзірлеушілерге бір-бірімен жұмыс істеу оңайырақ болады.

- Және, әрине, бар нәрсені сақтаудың ешқандай жолы жоқ па?

— Бұл сізге тиімсіз болады. Біздің тәжірибемізге сеніңіз.

- Жарайды…

Таныстырды ма? Әдетте сіздің қызметіңізді қалай жақсы қайта құру туралы келіссөздер осылай аяқталады. Нөлден жазу бағдарламашылар үшін тиімді, бірақ көбінесе бизнес үшін өте жаман идея.

Неліктен бағдарламашылар мұндай кеңестер беретінін түсіндіремін.

Әр компанияның өзіндік технологиялық стегі бар: бір агенттік PHP — ге, екіншісі Python — ға, үшіншісі түйінге мамандандырылған.js. Егер Тапсырыс берушіде басқа стек болса, әзірлеушілер өз жобасына ене алмайды, өйткені командада осы бағдарламалау тілінде жұмыс істейтін мамандар жоқ.

Resolventa компаниясының сайтынан біздің мамандардың стегін көрсететін Скриншот. Сіз осындай тізімді кез-келген ат компаниясының веб-сайтынан таба аласыз. Бұл олардың сіздің әзірлеушілеріңізбен бірдей технологиялармен жұмыс істейтінін білуге көмектеседі

Әзірлеушілер жеткілікті Құзыретті емес. Басқа біреудің кодын түсіну жобаны қайта жазудан әлдеқайда қиын. Типтік мәселелерді шешу тәжірибесі ғана емес, ұқсас мәселелерді шешуде тәжірибе және жеке көзқарас қажет. Бұл үшін білікті қызметкерлер қажет. Егер сізге жобаны нөлден қайта жазу ұсынылса, мүмкін компанияның штатында жаңартуды жүзеге асыратын сеньорлық бағдарламашылар жоқ шығар.

Агенттікке сіздің тапсырысыңызды алу тиімді, бірақ қызметті кезең-кезеңімен жаңарту өте қиын. Нәтижесінде бағдарламашылар жобаны толығымен қайта жазу туралы шешімдерін табиғи түрде баса бастайды. Осылайша олар ақша алады және басқа біреудің стегі мен легасимен жұмыс істеу арқылы өз өмірлерін қиындатпайды. Бұл, әдетте, технологиялық стек пен агенттіктің мәселелерді шешуге деген көзқарасы ең заманауи, ал Тапсырыс берушінің тыныш және ескіргендігі-бәрі баяулайды.

Біз адал әзірлеушінің міндеті, егер мүмкін болса, қызметті сақтау деп санаймыз. Неліктен көп жағдайда ескі ат жүйесін жаңарту тиімдірек екенін және бәрін нөлден қайта жазуға тура келетінін қарастырайық.

Қызметті нөлден бастап дамыту, әдетте, оны бірінші рет жасауға қанша уақыт жұмсалса, сонша уақытты алады. Мысалы, егер интернет-дүкен бір жыл ішінде жасалса, онда оның жаңа нұсқасы ертерек пайда болмайды.

Осы уақыт ішінде бизнес ескі ат жүйесімен өмір сүруі керек, ол өз функцияларын толығымен орындамаса да, қажет. Онымен не істеудің екі нұсқасы бар: бәрін сол күйінде қалдыру — техникалық қолдауда — немесе балдақтарды қою және Қызметті жаңасын жасаумен қатар жөндеу. Әр шешімнің өзіндік кемшілігі бар:

❌ Егер сіз ескі қызметке қол тигізбесеңіз, онда сіз мүмкін пайданы жоғалтасыз. Мысалы, біздің тәжірибемізде B2B порталы бар тапсырыс беруші болды, ол өз қызметіне жазылымдарды сатты. Біз порталдың жаңа нұсқасын жасап жатқанда, тұтынушылар ескісін пайдаланып, шығарылымды күтеді деп болжанған. Бірақ кейбіреулерге қателіктер мен бейімделмеген дизайн ұнамады, сондықтан олар қызметке жазылудан бас тартты. Нәтижесінде тапсырыс беруші пайданың бір бөлігін жіберіп алды.

❌ Егер сіз ескі қызметті жаңасын жасаумен бірге жөндесеңіз, сіз шығындарды екі есе арттырасыз. Сізге екі даму тобын ұстау керек: екі есе көп төлеу және екеуін де бақылау үшін басқару ресурсын жұмсау. Бұл бизнеске үлкен жүктеме. Содан кейін жанжал қаупі бар: қазіргі нұсқаны жасаушылар ескірген қызмет олармен бірге жерленеді деп ойлайды, сондықтан олар жаңа командамен ынтымақтастыққа саботаж жасай алады.

Менің тәжірибемде жүйені қалпына келтіру мүмкін емес жағдайлар жоқ: ескі кодты сұрыптап, платформаны әрдайым жаңартуға болады. Бірақ бұл мүмкін емес жағдайлар бар. Міне, жүйені әлі де нөлден қайта жазу жақсы болатын екі жағдай:

Қолданылатын технологиялар үмітсіз ескірген. Егер технология моральдық тұрғыдан ескіріп қана қоймай, қайтыс болса, жобаны қайта құру керек. Егер сіздің қызметіңіз жазылған тілдің нұсқасына ұзақ уақыт қолдау көрсетілмесе, бұл орын алады. Мысалы, өнім PHP 5.0-де жазылған кезде, ол 2008 жылы ескірген.

↑ Егер сіздің қызметіңіздің коды келесідей болса, оны жаңартудың қажеті жоқ. Жерлеу және нөлден жазу жақсы

CMS пайдаланылды. WordPress және Bitrix сияқты конструкторлар шағын немесе әдеттегі интернет-дүкендер мен басқа да қарапайым ат жүйелері үшін жақсы. Егер бизнес өсіп жатса, уақыт өте келе оған CMS-те жүзеге асырылмайтын жаңа жеке шешімдер қажет болады.

Өкінішке орай, бастапқыда CMS - те жазылған қызметті жаңарту өте қымбат және қиын. Мұны істеу үшін сіз белгілі бір CMS құрылғысын ішінен білуіңіз керек және оны конфигурациялап қана қоймай, бастапқы кодтың маңызды бөліктерін қайта жаза білуіңіз керек. Нарықта мұндай мамандар өте аз.

Барлық басқа жағдайларда, қызмет әлі де қолдау көрсетілетін және CMS пайдаланылмайтын тіл нұсқасында жазылған кезде, мен жаңартуды ұсынамын. Бизнес үшін ескі қызметті қайта құру әрдайым жаңасын жасағаннан гөрі жақсы.

Егер басшылық кезең-кезеңмен жаңғырту тактикасын таңдаса, ат жүйесін қайта құрумен қатар бизнестің тиімділігін кеңейтуге және арттыруға болады. Компания үшін жаңа бағдарламалық платформа жазылып жатқанда, процестерді екі жылға кідіртудің қажеті жоқ.

Бизнес басшылығы бұл қызметті қайта құрудан гөрі жаңартуды қымбат деп санауы мүмкін. Бұл әрдайым бола бермейді. Соңғы бағаға бірнеше факторлар әсер етеді. Алдымен кезең-кезеңмен қалпына келтіру бағасын көтеретіндерді қарастырыңыз:

  • Білікті кадрларға ақы төлеу. Жобаны жасаудан гөрі Модернизация қиынырақ, сондықтан жоғары деңгейлі мамандар қажет. Олардың құны жоғары, сондықтан жалақы бюджетті арттыруы мүмкін.

Бірақ, екінші жағынан, төмен бюджеттік команда тіпті жаңа жобаны жақсы жаза алмайды — бірнеше жылдан кейін оны қайта жазу қаупі бар.

  • Уақыт шығындары. Жүйені кезең-кезеңімен жаңарту көп уақытты қажет етеді, бұл айтарлықтай уақытты алуы мүмкін. Бизнес бұл қаржылық жүктемені бюджеттің басқа баптарынан ақша алу арқылы ұзағырақ көтереді.

Бірақ модернизация жұмыстарының бағасын төмендететін сәттер бар:

  • Кодтың дайын бөліктерін пайдалану. Қалпына келтіру кезінде жақсы жұмыс істейтін ескі жүйенің бөліктерін қайта жазудың қажеті жоқ. Бұл Даму шығындарын азайтуға мүмкіндік береді. Жобаны құру кезінде бұл мүмкін емес: кодтың жүз пайызы нөлден жазылуы керек.
  • Тек бір команданың жұмысы. Ескі қызметті қолдау және жаңасын құру үшін жеке әзірлеушілерді ұстаудың қажеті жоқ, сіз бағдарламашылар штатын көбейтпейсіз.

Бизнес үшін қай опция оңтайлы екенін анықтау үшін мен білікті сыртқы ат аудитін жүргізуді ұсынамын. Мамандар сіздің қызметіңіздің қандай күйде екенін қарастырады, жазу шығындарын нөлден және модернизациядан есептейді және қорытынды жасауға көмектеседі.

  • Сервисті жаңартыңыз, егер бизнес қатты өссе немесе өзгерсе, технология моральдық тұрғыдан ескірген болса немесе, мысалы, соңғы жаңартудан 10 жыл өткен болса.
  • Жобаны кезең — кезеңімен жаңғырту-көп жағдайда компания үшін ең тиімді шешім. Осылайша сізге шығындарды екі есе көбейтудің, пайда мен клиенттерді жоғалтудың және бизнестің өсуін тоқтатудың қажеті жоқ.
  • Егер ол PHP 5.0 және одан бұрынғы нұсқаларында жасалса немесе CMS көмегімен жазылса, қызметті нөлден қайта жазыңыз. Мұндай жағдайларда қызметті жаңарту қайта жазудан гөрі қиынырақ болады, яғни бұл бағдарламашылар үшін көп сағатты алады және өте қымбат болады.

Біз Resolventa - да бүкіл әлемдегі стартаптар мен ірі бизнеске 2012 жылдан бастап қызметтерді қайта бастауға және жаңаларын құруға көмектесеміз. Сондай-ақ, біз техникалық аудит жүргіземіз: егер сіз әлі шешпеген болсаңыз, жүйені жаңарту немесе қайта жазу, онда нақты не өзгерту керек және оны қалай оңтайландыру керек.

Жеке тұлғаға жазыңыз-мәселені талдап, ат жобасы бойынша кеңес беру күнін белгілеңіз.

Пікірлер 0

Кіру пікір қалдыру үшін