Jump to content

Вопрос программистам


Xenia Wanger
 Share

Recommended Posts

 

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

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

 

Я когда-то так работал. Так вот я скажу, что задачи были постоянно. Всем надо какие-то особенные фишечки, которые не позволяет стандартная конструкция цмски.

Link to comment
Share on other sites

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

два варианта - либо пьет кофе:) вообще - движок постоянно перепиливается

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

Edited by Николя223
Link to comment
Share on other sites

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

 

Для меня всё сразу ясно )) Чувак привык, чувак одиночка, чувак вам не доверяет, и чувак привык работать со своим кодом который ему понятен. Поэтому он переделывает под себя. Проблема в чуваке. Нужно учить его работать в команде.

 

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

Edited by wwt
  • Like 2
Link to comment
Share on other sites

Xenia Wanger, on 09 Dec 2013 - 8:09 PM, said: Ну вообще, по его рассказам, он раньше один в отделе был, все делал сам. И вот недавно ему в помощь дали людей: копирайтеров, программиста, верстальщика и дизайнера То есть по идее он должен неплохо так во всем этом разбираться   Для меня всё сразу ясно )) Чувак привык, чувак одиночка, чувак вам не доверяет, и чувак привык работать со своим кодом который ему понятен. Поэтому он переделывает под себя. Проблема в чуваке. Нужно учить его работать в команде.

 

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

Я бы просто посмотрел ошибки и отправил обратно с комментариями, иначе человек так ничему и не научиться

 

 

Xenia Wanger,  ты просто в лоб ему вопрос задай - что он там копается))) Edited by Николя223
Link to comment
Share on other sites

ты просто в лоб ему вопрос задай - что он там копается)))

в моем исполнении это бы звучало так: "Какого *** ты что-то переделываешь му****, и говоришь что верстка не готова?" , а всё потому что он говоря так подставляет дизайнера и верстальщика. :rofl:  Простите за звездочки.

  • Like 1
Link to comment
Share on other sites

ну если уж в угадайки играем, то и я выскажусь

 

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

 

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

 

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

Edited by cyklop77
  • Like 1
Link to comment
Share on other sites

Да никто и не высказывается о том чтобы наорать или не наорать)))  Команда - должна быть командой!

 

Если каждый будет тихо сидеть в углу и допиливать то, что не сделал предыдущий исполнитель - грош цена такой команде и такой конторе

 

Лебедь рак и щука, ей богу.

 

Ошибки нужно подсказывать развивающимся специалистам, а не править их в одну каску

  • Like 1
Link to comment
Share on other sites

 

в моем исполнении это бы звучало так: "Какого *** ты что-то переделываешь му****

 

я бы добавил:  давай переделывай всё взад      :rofl:

 

 

Ахах)Подняли настроение с утра пораньше  :rofl:

 

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

 

Довольно тонко подметил. На деле все как-то так и обстоит.

 

 

 

Всем спасибо за ваши комментарии и советы :)) Буду решать как-то эту проблему

Edited by Xenia Wanger
Link to comment
Share on other sites

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

 

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

  • Like 1
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

 

Опять таки, это есть какие-то вменяемые шаблонизаторы используются, а-ля привычный html + прикольные_фишки_дополняшки, то что есть в ejs и Smarty (есть и другие, да, но лично я работал только с ними :) ). А взять те же темы для Wordpress, или, чего хуже, для Joomla, или, подстрелите меня, для Bitrix, то тут без килограмма кофеина не разобраться. Очень много специфичных вещей, с которыми фронтендер не сталкивается в принципе

Link to comment
Share on other sites

Ну я считаю, что разрабатывать на джумле или вордпрессе и тем более битриксе — не уважать себя. Я проследние пару лет использую django framework. Там типа смарти шаблоны — очень похоже.

Link to comment
Share on other sites

Ну я считаю, что разрабатывать на джумле или вордпрессе и тем более битриксе — не уважать себя. Я проследние пару лет использую django framework. Там типа смарти шаблоны — очень похоже.

 

Получается, что идеология смарти-подобной шаблонизации не мне одному кажется более адекватной. это радует :)

Link to comment
Share on other sites

Смарти кушает много памяти. Пользовать стоит php native. Он для этих целей и разрабатывался изначально.

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

В свое время так и делали: когда устроился на работу, программист дал тестовое задание, проверил его и объяснил недочеты и мелочи, которые впредь должны были соблюдаться. Далее мне присылали макеты с тз, я верстал иотправлял программисту. На этом моя работа заканчивалась. Кстати, именно он мне ипоказал это сайт ;)

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

Edited by Radiocity
Link to comment
Share on other sites

Смарти кушает много памяти. Пользовать стоит php native. Он для этих целей и разрабатывался изначально.

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

В свое время так и делали: когда устроился на работу, программист дал тестовое задание, проверил его и объяснил недочеты и мелочи, которые впредь должны были соблюдаться. Далее мне присылали макеты с тз, я верстал иотправлял программисту. На этом моя работа заканчивалась. Кстати, именно он мне ипоказал это сайт ;)

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

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

  • Like 1
Link to comment
Share on other sites

А как насчёт Drupal? На нём сделано много сложных и высоконагруженных сайтов (и наш любимый htmlbook.ru тоже), но вот шаблонизация весьма трудоёмкая и на чистом PHP.

Edited by Vin
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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

Edited by Николя223
Link to comment
Share on other sites

А как насчёт Drupal?

 drupal - мой второй любимый движок   

третий - opencart, несмотря на то что структура у него ужасна... но пришлось полностью его перебрать

Edited by Николя223
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By zeiger2
      Здравствуйте! У меня стоит задача, что при наведении на блок li строка должна поменять цвет, в том числе и картинка. Я меняю картинку с помощью 
      background-image: none;     background: url(../img/check_icon_red.png) left no-repeat;   Но теперь картинка позицианируется не там где должна, её можно поставить на место только вручную, через -100px. Нужно поставить ровно туда, где она была. Должна быть в одном ряду с другими
    • By Mix9
      есть див с 5 img, при уменьшении экрана див выходит за него. Я добавил overflow: auto для этого div в надежде на то, что я смогу прокручивать фотки с помощью скроллбара, однако даже с ним почему-то я не вижу часть фоток которые вышли за границу. Что с этим можно сделать? класс video повторяется 5 раз, я тут оставил только 1 
      .content{ width: 90%; background-color: #333; } .video{ margin: 0px 4px 0px 4px; width: 310; display: flex; flex-direction:column; } .video_button_text{ margin-top: 10px; display: flex; flex-direction: row; font-size: 20px; color: white; } .video_text_div{ display: inline-block; width: 250px; } .video_text{ text-align: justify-all; margin: 0px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .slidan_videos{ margin: 0px 10px 0px 20px; overflow: auto; width: auto; margin-bottom: 50px; display: flex; flex-direction: row; justify-content: space-around; } <div class="content"> <div class = slidan_videos> <div class = video> <div> <a href = 'ссылка'><img class="img" src=""картинка"></a> </div> <div class = video_button_text> <div class = avatarka_div> <a href="ссылка" target="_blank"><img class = avatarka src="картинка"></a> </div> <div class = video_text_div> <p class = video_text><a href="ссылка">текст</a></p> </div> </div> </div>
    • By Марко
      Добрый день. Начинающий программист, столкнулся с проблемой. Селектор .class не работает должным образом. Несмотря на правильное, я надеюсь, описание, на web-странице не отображается ни одно изображение. С чем может быть связано? Заранее спасибо за помощь. 



    • By Kaido
      Использую готовый плагин для модальных окон(от MaxGraph). Проблема в том, что когда у меня открыто два модальных окна, для примера Форма + Политика конфендициальности, и мне нужно закрыть политику вместе с ней закрывается и другое модальное окно. В JS я не сильно разбираюсь(собственно из за этого и использую готовый плагин), можете помочь кто работал с этим плагином? Я примерно понимаю как он работает, но реализовать чтобы закрывалось только одно не получается.
       
        <div class="content"> <button class="modal-btn" data-path="first" data-animation="fadeInUp" data-speed="1500">Открыть окно 1</button> </div> <div class="modal"> <div class="modal__wrapp" data-target="first"> <div class="modal__content"> <button class="modal__close">Закрыть</button> модальное окно <button data-path="policy">Политика</button> </div> </div> <div class="modal__wrapp" data-target="policy"> <div class="modal__content"> <button class="modal__close">Закрыть</button> политика </div> </div> </div> .modal { --transition-time: 0.3s; position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 1000; cursor: pointer; overflow-y: auto; overflow-x: hidden; text-align: center; opacity: 0; visibility: hidden; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp { display: none; cursor: default; width: fit-content; height: fit-content; } .modal__content{ position: absolute; left: 500px; width: 500px; height: 500px; display: flex; color: white; flex-direction: column; text-align: left; background-color: #000; } .modal__content button{ width: 200px; height: 50px; margin: 50px 0; } .modal.is-open { opacity: 1; visibility: visible; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp.modal-open { display: flex; } .disable-scroll { position: relative; overflow: hidden; height: 100vh; position: fixed; left: 0; top: 0; width: 100%; } .fade { opacity: 0; transition: opacity var(--transition-time); } .fade.animate-open { opacity: 1; transition: opacity var(--transition-time); } .fadeInUp { opacity: 0; transform: translateY(vw(-100)); transition: opacity var(--transition-time), transform var(--transition-time); } .fadeInUp.animate-open { opacity: 1; transform: translateY(0); transition: opacity var(--transition-time), transform var(--transition-time); } .modal__wrapp[data-target="policy"] .modal__content{ left: 1050px; background-color: #000; opacity: .5; } class Modal { constructor(options) { let defaultOptions = { isOpen: () => {}, isClose: () => {}, } this.options = Object.assign(defaultOptions, options); this.modal = document.querySelector('.modal'); this.speed = false; this.animation = false; this.isOpen = false; this.modalContainer = false; this.previousActiveElement = false; this.fixBlocks = document.querySelectorAll('.fix-block'); this.focusElements = [ 'a[href]', 'input', 'button', 'select', 'textarea', '[tabindex]' ]; this.events(); } events() { if (this.modal) { document.addEventListener('click', function(e){ const clickedElement = e.target.closest('[data-path]'); if (clickedElement) { let target = clickedElement.dataset.path; let animation = clickedElement.dataset.animation; if (clickedElement.classList.contains('modal-close')) { this.close(); } let speed = clickedElement.dataset.speed; this.animation = animation ? animation : 'fade'; this.speed = speed ? parseInt(speed) : 300; this.modalContainer = document.querySelector(`[data-target="${target}"]`); this.open(); return; } if (e.target.closest('.modal__close')) { this.close(); return; } }.bind(this)); window.addEventListener('keydown', function(e) { if (e.keyCode == 27) { if (this.isOpen) { this.close(); } } if (e.keyCode == 9 && this.isOpen) { this.focusCatch(e); return; } }.bind(this)); this.modal.addEventListener('click', function(e) { if (!e.target.classList.contains('modal__wrapp') && !e.target.closest('.modal__wrapp') && this.isOpen) { this.close(); } }.bind(this)); } } open() { this.previousActiveElement = document.activeElement; this.modal.style.setProperty('--transition-time', `${this.speed / 1000}s`); this.modal.classList.add('is-open'); this.disableScroll(); this.modalContainer.classList.add('modal-open'); this.modalContainer.classList.add(this.animation); setTimeout(() => { this.options.isOpen(this); this.modalContainer.classList.add('animate-open'); this.isOpen = true; this.focusTrap(); }, this.speed); } close() { if (this.modalContainer) { this.modalContainer.classList.remove('animate-open'); this.modalContainer.classList.remove(this.animation); this.modal.classList.remove('is-open'); this.modalContainer.classList.remove('modal-open'); this.enableScroll(); this.options.isClose(this); this.isOpen = false; this.focusTrap(); } } focusCatch(e) { const focusable = this.modalContainer.querySelectorAll(this.focusElements); const focusArray = Array.prototype.slice.call(focusable); const focusedIndex = focusArray.indexOf(document.activeElement); if (e.shiftKey && focusedIndex === 0) { focusArray[focusArray.length - 1].focus(); e.preventDefault(); } if (!e.shiftKey && focusedIndex === focusArray.length - 1) { focusArray[0].focus(); e.preventDefault(); } } focusTrap() { const focusable = this.modalContainer.querySelectorAll(this.focusElements); if (this.isOpen) { focusable[0].focus(); } else { this.previousActiveElement.focus(); } } disableScroll() { let pagePosition = window.scrollY; this.lockPadding(); document.body.classList.add('disable-scroll'); document.body.dataset.position = pagePosition; document.body.style.top = -pagePosition + 'px'; } enableScroll() { let pagePosition = parseInt(document.body.dataset.position, 10); this.unlockPadding(); document.body.style.top = 'auto'; document.body.classList.remove('disable-scroll'); window.scroll({ top: pagePosition, left: 0 }); document.body.removeAttribute('data-position'); } lockPadding() { let paddingOffset = window.innerWidth - document.body.offsetWidth + 'px'; this.fixBlocks.forEach((el) => { el.style.paddingRight = paddingOffset; }); document.body.style.paddingRight = paddingOffset; } unlockPadding() { this.fixBlocks.forEach((el) => { el.style.paddingRight = '0px'; }); document.body.style.paddingRight = '0px'; } } const modal = new Modal({ isOpen: (modal) => { console.log(modal); console.log('opened'); }, isClose: () => { console.log('closed'); }, });  
    • By stasN1
      Мне нужен такой результат :

      Не понимаю почему background не применяется вокруг иконок:

       
      Сам код:
      Html:
      css:

      Html:
      <section class="finish"> <div class="container"> <h2 class="finish_header">По окончании обучения Вы сможете!</h2> <div class="finish_divider"></div> <div class="finish_wrapper"> <finish_item> <div class="finish_round"> <img src="/icons/finish/1 (1).png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/2.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/3.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Обеспечить ему медленный, но верный рост в ТОП</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/4.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/5.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> </div> </div> </section>  
      Css:
      .finish .finish_wrapper { margin-top: 41px; display: flex; justify-content: space-between; } .finish .finish_wrapper .finish_item { width: 204px; } .finish .finish_wrapper .finish_item .finish_round { width: 115px; height: 115px; background-color: #b4e2ff; border-radius: 8px; } .finish_descr { font-family: Roboto; font-size: 17px; line-height: 20px; font-weight: 300; color: #efefef; Спасибо!
       

      Уже решил, спасибо!
      У меня CSS селектор вида:
      .finish .finish_wrapper .finish_item .finish_round

      А должен быть:
      .finish .finish_wrapper finish_item .finish_round
      Т.е. без точки перед finish_item, так как это не класс, а элемент

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy