Pull to refresh
170
0
Максим @waitekk

User

Send message
Стоян Стефанов / Паттерны программирования — в этой книге можно почитать о классическом наследовании в javascript.
Вставлю и свою пять копеек, т.к. занимаюсь «фрилансю» около 3 лет, кое-какой опыт общения уже есть
Мне приходится как брать заказы, так иногда и публиковать свои проекты (например, когда не успеваю сам или когда не хочу тратить на некоторую работу время) на сайте одного известного украинского веблансерского ресурса. Выработал для себя определенный систему определения c кем я хочу работать, а с кем нет. Данная система всего лишь плод моих наблюдений, никоим образом не может быть навязана всем, чье мнение отлично от моего

а) Если я выступаю как заказчик
1. Срараюсь максимально точно описать задание и что я хочу получить в итоге, описываю доп. условия (например, необходима личная встреча и исполнитель должен проживать в том же городе, что и я)
2. Не указываю стоимости проекта, предлагаю претенденту самому оценить стоимость своей работы, сообразуясь с ее сложностью, объемом и др. факторами
3. Если получаю предложение типа «Пиши, сделаю» в мусорку.
4. Если кандидат не смог элементарно осилить дочитать мое описание (например, исполнитель из Магадана, а нужен только из Киева, что указывается в описании) в мусорку.
5. Далее отсеиваю царей горы. «Я работаю только по 100% предоплате!». Работайте, но не со мной
6. Отсеиваю слишком жадных. Например, при средней стоимости верстки «средней» страницы порядка 20-30 долларов, человек за 150 наврядли сделает мне что-то конгениальное.
6. С другими пытаюсь пообщаться. Спрашиваю что делал, на чем пишет, как бы он сделал то-то и то-то. Прощаюсь с теми, кто пишет «ептыть сделаю как два пальца».
7. В предыдущий пункт также попадаю так называемы «менеджеры», т.е. посредники. В процессе работы с таким товарищами, прямого контакта с разработчиком не получается, а мне попадались не совсем адекватные манагеры. Их функция — испорченный телефон. Эт только мешает.
8. Еще одна категория ламеры, очень страшная категория. Иногда в короткой беседе таких не выявишь, Любимый ответ таких людей на претензии, возникающие после выполнения всей работы, либо этапа — это контратака с истерией. «Б$#, я провозился с твоим проектом, а ты мне мозги @#$шь… Ух!
9. Могу отдать работу новичку, если вижу что человек реально пытается зарабатывать и:
— работа не сложна и ее легко переделать в случае неверного исполнения
— достаточный запас времени.
Сложные вещи не отдаю, извините, но это не тот случай. Либо учимся, либо зарабатываем деньги.
10. Вебстудии имени безымянного героя меня смешат.


б) Если я выступаю претендентом на выполнение проекта
1. Не делаю заявок на все подряд проекты, а только те, что мне интересны или те, что лучше знаю (имею больше опыта) или просто интересны мне (например, я люблю все, что связано с онлайн видео).
2. Не ставлю заявки на проекты, которые кажутся мне узнаванием цен (Например, сколько будет стоить сделать сайт showsiski.ru?).
3. Не жалею 10-15 минут на написание детального предложения доступным языком (без технических подробностей), но без детского лепета.
4. Если делал подобны проекты, сообщаю это, если нет, то говорю что из функционала у меня есть, а что буду делать с нуля.
5. Если по описанию проекта я могу предположить срок выполнения, говорю ориентировочный, то с указанием, что точнее скажу после обсуждения деталей.
6. Аналогично предыдущему пункту происходит ценообразование. Тут есть исключения. Если работа для души, могу сделать ее дешевле.
7. В начале разговора вы всегда обращаюсь на Вы, даже если заказчик младше меня. В процессе работы, можем перейти на более формальное общение, так легче.
8. НИКОГДА не соглашаюсь на процент от прибыли и будущие светлые перспективы! Моя часть — создание, пожалуйста, зарабатывайте миллионы на своем сайте, меня жаба не задавит
9. Не требую предоплаты (это отпугивает любого нормального человека), но настоятельно предпочитаю безопасную сделку, являющейся гарантией того, что заказчик „не забудет“ обо мне. Небольшие работы показываю на своем сервере. Негативный опыт есть. Если клиент обращается не в первый раз, то, конечно, правила меняются, возникает некое доверие.
10. Очень не люблю всезнаек, манипулирующих терминологией (кроме случаем, когда заказчик действительно в теме). Сделай мне „обертку модуля“. Б#$я! Зачастую употребление терминологии заказчиком приводит к неправильному понимаю задания. Если чувствую что терминология мешает, прошу не обижаться, но объяснить человеческим языком.
11. Часто до начала работы пытаюсь обсудить с заказчиком схему взаимных объяснений, прошу заказчика (впрочем, такое и с исполнителями бывает) избегать выражений „там“, „это“, „все“. Например: „Там картинка неправильно стоит!“ Прошу перефразировать „Логотип расположены слишком близко к левой границе браузера.
12. Стараюсь обсуждать с клиентом что он получает за свои деньги. Например: Стоимость 10 долларов включает два макета логотипа.
“Немножко играться с цветом» до бесконечности. Думаю, попасть в рабство за 10 баксов никто не хочет.
13. Будьте терпеливы к противоположной стороне. Заказчик — человек, платящий вам деньги. Прежде чем написать гневный ответ «тупому идиоту», переключитесь на что-то другое, дайте себе остынуть, а уж потом пишите.
14. Помните, вы и заказчик партнеры, сотрудничаете на взаимовыгодных условия, а не вам делают одолжения. Ведите себя достойно, но без подлизывания зада, хотя, высокомерие тоже не приветствуется.
Я воспользовался сервисом wildtunnel.eu
.izvrat-plus-div
{
behavior : expression(
(runtimeStyle.behavior==''&&currentStyle.backgroundImage!='none') ?
insertAdjacentHTML('afterBegin', '<div class="ie"" style="height:1;width:1;position:absolute;'
+((currentStyle.backgroundPositionX!='100%'&&currentStyle.backgroundPositionX!='right') ? 'left:'+((currentStyle.backgroundPositionX == 'left') ? 0 : currentStyle.backgroundPositionX ) : 'right:0')+';'
+((currentStyle.backgroundPositionY!='100%'&&currentStyle.backgroundPositionY!='bottom') ? ';top:'+((currentStyle.backgroundPositionY == 'top') ? 0 : currentStyle.backgroundPositionY ) : 'bottom:0')
+';filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+currentStyle.backgroundImage.split('\"')[1]+', sizingMethod=crop)">'+'<img src="'+currentStyle.backgroundImage.split('\"')[1]+'" alt="" style="visibility:hidden" /></div>') : '',
runtimeStyle.backgroundImage = 'none',
runtimeStyle.behavior = 'none'
);
}
Что мешает сделать пару сайтов на английском?

Есть и другие биржи - oDesk, RAC (rentacoder) и прочие.
Да, да! Статейка была на alistapart про 30 способов улучшить свой CSS, это и была одна из рекомендаций.
Очень удобно — сразу видно что/где и внутри чего.

p.s. дело вкуса, а я предпочитаю группировать так:

/* Header
----------------------------*/
#header {} /* даже если нет стилей, все равно указываю для соблюдения "каскадности"  */
  #header p {
  /* стили для p внутри header'а */
  }
    #header ul {
    }
      #header ul li {
      }

/* Content
----------------------------*/

div#content{
  /* стили content'а */
}
  div#content p {
    /* стили для p внутри header'а */
  }
  div#content ul {
  }
    div#content ul li {
    }

/* Typographic
----------------------------*/


Даже если определние блока пустое я все равно его пишу для «каскадности».
В своё время наткнулся на сайт одной веб-студии, у которой таблицы стилей были написаны изумительно. Сейчас уже адрес не назову, но возможно, кто-то тоже впечатлился. С тех пор стараюсь оформлять большие цсс именно в таком стиле. Вот для примера начало одной из таблиц:
/* Общая таблица стилей для всех страниц сайта.

********************************************************************************
Содержание:
   0 Общий внешний вид
      0.1 Оформление текста
   1 Заголовок и главное навигационное меню
      1.1 Заголовок
      1.2 Главное навигационное меню
   2 Основной контент
      2.1 Обрамление
      2.2 Рекламный заголовок
      2.3 Меню навигации кабинета
      2.4 Текстовой блок
         2.4.1 Текстовой блок для авторизированного пользователя
         2.4.2 Текстовой блок для авторизированного пользователя
         2.4.3 Таблицы, содержащие интерфейсы управления
   3 Футер
      3.1 Левый футер
      3.2 Правый футер
*******************************************************************************/




/* 0 Общий внешний вид
------------------------------------------------------------------------------*/
#wrapper{
   min-height: 100%;
   min-width: 980px;
   height:auto !important;
   height:100%
}
body{
   font-family: Helvetica, Tahoma, Arial, serif;
   font-size: 14px;
   height: 100%;
   line-height: 14px;
   margin: 0;
   padding: 0;
}
html{
   height: 100%;
}
table{
   width: 90%;
}
table tr.odd{
   background: #FAFAFA;
}



   /* 0.1 Оформление текста
   ---------------------------------------------------------------------------*/
   acronym, abbr{
      border-bottom: 1px dashed;
   	cursor: help;
   }
   a{
      color: #fe5800; /*orange*/
   }
   a:hover{
      text-decoration: none;
   }
   a.ext{
      background: url(../img/external_link.gif) no-repeat right top;
      padding-right: 16px;
   }
   img.fileIcon{
      height: 16px;
      vertical-align: -3px;
      width: 16px;
   }
   .attention{
      color: #fe5800; /*orange*/
      font-weight: bold;
   }
   .newMaterial{
      font-weight: bolder;
   }
   .nohypen{
      white-space: nowrap;
   }




/* 1 Заголовок и главное навигационное меню                                   */
   /* 1.1 Заголовок
   ---------------------------------------------------------------------------*/
   #header{
      background: url(../img/header_bckg.gif) repeat-x;
      height: 120px;
      line-height: 16px;
   }


Это пока рабочий вариант, но суть, я думаю понятна.
2. Алфавитный порядок

По-моему скромному мнению это ничего не улучшает.
Я считаю, что группировать надо по смыслу (семантике).
Это сложно описать словами, приведу пример (порядок строк имеет значение):

a:link,
a:visited	{ display: block; float: left; width: 100px;          // модель, флоаты, размеры
	 	  position: relative; top: 0; right: 12px;            // позиционирование
		  margin: 0; padding-right: 20px; border: none;       // отступы, бордеры
	 	  font: 1em/1.4em Arial, Helvetica, sans-serif;       // основной шортхенд для шрифта
		  text-transform: uppercase; color: #0cf;             // цвет и др.
	 	  background: url(../img/leave.gif) right no-repeat } // шортхенд для бекграунда


Теперь, если ваш редактор имеет вменяемую подсветку кода, найти любое свойство можно сходу.

4. Последовательность

Пример «каждое с новой строки», просто не имеет права на существование, слишком много придётся скролить, если проект сколько-нибудь большой. Пример «3 в ряд» — часто тоже (если у вас конечно не супер широкорматный монитор), часто будет перенос строки, что неэстетично и просто неудобно для сканирования текста.

Поэтому:

#list		{ margin: 0; padding: 0 40px 0 12px;
		  list-style-type: none; font-size: 1em }            // в последней строке можно группировать то, что насобиралось
#list li	{ margin: 0; padding: 6px 0;                         // пока правила помещаются в удобочитаемую по длине строку, никаких переносов не нужно
		  background: url(../img/dots.gif) repeat-x }        // а вот здесь уже без него никак
#list h4	{ margin: 0 }

Information

Rating
Does not participate
Location
Россия
Registered
Activity