Новые книги

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

Каждый, кто хочет научиться увеличивать свои продажи и повышать их конверсию, найдет здесь самые эффективные из современных техник – техник, которые продают сами.

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

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

Прочитав эту книгу, вы научитесь:

Бороться с недостатками программного обеспечения;

Избегать ловушек, связанных с дублированием знания;

Создавать гибкие, динамичные и адаптируемые программы;

Избегать программирования в расчете на совпадение;

Защищать вашу программу при помощи контрактов, утверждений и исключений;

Собирать реальные требования;

Осуществлять безжалостное и эффективное тестирование;

Приводить в восторг ваших пользователей;

Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

Примеры.

Пример 15

/* Команда для изменения скорости обмена в линии (baud).*/
/* Пример вызова в XENIX: baud /dev/tty1a 9600          */
/* /dev/tty1a - это коммуникационный последов. порт #1  */
/* Про управление модами терминала смотри man termio    */
#include <fcntl.h>
#include <termio.h>
struct termio old, new; int fd = 2;  /* stderr */
struct baudrate{ int speed; char *name;} br[] = {
  { B0,    "HANGUP" }, { B1200, "1200" }, { B9600, "9600"   },
  { B600,  "600"    }, { B2400, "2400" }, { EXTA,  "19200"  },
};
#define RATES (sizeof br/sizeof br[0])
main(ac, av) char *av[];
{       register i; char *newbaud;
	if( ac == 3 ){
	    if((fd = open(av[1], O_RDWR)) < 0 ){
		printf("Не могу открыть %s\n", av[1]); exit(1);
	    }   newbaud = av[2];
	} else  newbaud = av[1];
	if( ioctl(fd, TCGETA, &old) < 0 ){
	    printf("Попытка управлять не терминалом и не портом.\n");
	    exit(2);
	}
	if(newbaud == (char*)0) newbaud = "<не задано>";
	new=old;
	for(i=0; i < RATES; i++)
	    if((old.c_cflag & CBAUD) == br[i].speed) goto ok;
	printf("Неизвестная скорость\n"); exit(3);
ok:     printf("Было %s бод\n", br[i].name);
	for(i=0; i < RATES; i++)
	    if( !strcmp(newbaud, br[i].name)){
	      new.c_cflag &= ~CBAUD; /* побитное "или" всех масок B... */
	      new.c_cflag |= br[i].speed;
	      if( ioctl(fd, TCSETA, &new) < 0) perror("ioctl");
   /* Скорость обмена может не измениться, если терминал
    * не открыт ни одним процессом (драйвер не инициализирован).
    */        exit(0);
	    }
	printf("Неверная скорость %s\n", newbaud); exit(4);
}

© Copyright А. Богатырев, 1992-95
Си в UNIX

Назад | Содержание | Вперед