Программирование пары с неровным числом членов команды? [закрытый]

Завихрение является способом пойти для простых запросов. Это выполняет кросс-платформенный, имеет расширение PHP и широко принято и протестировано.

Я создал хороший класс, который может ДОБРАТЬСЯ и POST массив данных (ВКЛЮЧАЯ ФАЙЛЫ!) к URL, просто назвав CurlHandler:: Доберитесь ($url, $data) || CurlHandler:: Сообщение ($url, $data). Также существует дополнительный способ аутентификации ПОЛЬЗОВАТЕЛЯ HTTP :)

/**
 * CURLHandler handles simple HTTP GETs and POSTs via Curl 
 * 
 * @package Pork
 * @author SchizoDuckie
 * @copyright SchizoDuckie 2008
 * @version 1.0
 * @access public
 */
class CURLHandler
{

    /**
     * CURLHandler::Get()
     * 
     * Executes a standard GET request via Curl.
     * Static function, so that you can use: CurlHandler::Get('http://www.google.com');
     * 
     * @param string $url url to get
     * @return string HTML output
     */
    public static function Get($url)
    {
       return self::doRequest('GET', $url);
    }

    /**
     * CURLHandler::Post()
     * 
     * Executes a standard POST request via Curl.
     * Static function, so you can use CurlHandler::Post('http://www.google.com', array('q'=>'StackOverFlow'));
     * If you want to send a File via post (to e.g. PHP's $_FILES), prefix the value of an item with an @ ! 
     * @param string $url url to post data to
     * @param Array $vars Array with key=>value pairs to post.
     * @return string HTML output
     */
    public static function Post($url, $vars, $auth = false) 
    {
       return self::doRequest('POST', $url, $vars, $auth);
    }

    /**
     * CURLHandler::doRequest()
     * This is what actually does the request
     * 
     * - Create Curl handle with curl_init
     * - Set options like CURLOPT_URL, CURLOPT_RETURNTRANSFER and CURLOPT_HEADER
     * - Set eventual optional options (like CURLOPT_POST and CURLOPT_POSTFIELDS)
     * - Call curl_exec on the interface
     * - Close the connection
     * - Return the result or throw an exception.
     * 
* @param mixed $method Request Method (Get/ Post) * @param mixed $url URI to get or post to * @param mixed $vars Array of variables (only mandatory in POST requests) * @return string HTML output */ public static function doRequest($method, $url, $vars=array(), $auth = false) { $curlInterface = curl_init(); curl_setopt_array ($curlInterface, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FOLLOWLOCATION =>1, CURLOPT_HEADER => 0)); if (strtoupper($method) == 'POST') { curl_setopt_array($curlInterface, array( CURLOPT_POST => 1, CURLOPT_POSTFIELDS => http_build_query($vars)) ); } if($auth !== false) { curl_setopt($curlInterface, CURLOPT_USERPWD, $auth['username'] . ":" . $auth['password']); } $result = curl_exec ($curlInterface); curl_close ($curlInterface); if($result === NULL) { throw new Exception('Curl Request Error: '.curl_errno($curlInterface) . " - " . curl_error($curlInterface)); } else { return($result); } } } ?>

[редактирование] Read разъяснение только теперь... Вы, вероятно, хотите пойти с одним из инструментов, упомянутых выше этого, автоматизирует материал. Вы могли также решить использовать клиентское расширение Firefox как ChickenFoot для большей гибкости. Я оставлю класс в качестве примера выше здесь для будущих поисков.

6
задан Mez 12 July 2009 в 12:46
поделиться

9 ответов

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

(a) согласен с ними, когда вы посмотрите на это во второй раз,

(b) не согласен?

Если (a), то проблема в том, что вы сами не полностью разъясняете ваш код, когда вы его пишете. Поскольку парное программирование - единственное, что заставляет вас писать достойный код, я полагаю, я бы порекомендовал, чтобы «лишнее» работало над задачами, которые не связаны с написанием длинных участков плохого кода: поиск ошибок; возможно, написать тестовый код, так как это, как правило, немного менее дьявольски. Между тем, работайте над улучшением своих навыков написания лучшего кода - возможно, сделайте обзор своего собственного кода, написанного несколько месяцев назад, и сделайте заметки о том, что с ним было не так.

Если (b), то ваша проблема несовместима выражения ваших идей. Код может быть неплохим по вашим стандартам, но он взаимно непонятен, что в корпоративной среде означает, что это плохой код. Парное программирование означает, что то, что вы пишете, является компромиссом, который понимают двое из трех из вас, но на самом деле это не решение. Вам нужно прийти к взаимному соглашению о том, что вам кажется наиболее трудным в коде друг друга, и прекратить это делать. И вам всем срочно нужно начать думать о «качестве кода» в терминах «моим двум коллегам понравится этот код», а не «Мне нравится этот код».

В любом случае, вам всем нужно работать над написанием кода для того, чтобы его прочитали , а не для того, чтобы выполнить немедленную работу как можно быстрее. Лично я делал это, пытаясь выразить вещи так, как я думаю, другие люди могли бы выразить и понять их, а не просто то, что имеет для меня смысл в то время. Со временем это становится привычным. Когда я пишу код, я пишу его для публичной аудитории точно так же, как я пишу этот пост для публичной аудитории. Итак, в моих личных проектах это аудитория людей, которые думают так же, как я, тогда как на работе это аудитория, которая думает, как мои коллеги. Но принцип состоит в том, чтобы писать код так, как будто его кто-то читает. Вы объясняетесь им, а не компилятору.

Не то чтобы мой код был лучшим в мире, но я действительно думаю, что получил пользу от того, что моя первая работа была в компании с 30 с лишним программистами, поэтому я увидел широкий спектр способов мышления. Также несколько примеров того, «чего не следует делать», когда один программист сделал что-то, что никто не мог легко понять, и, следовательно, можно было окончательно назвать плохим. При наличии всего 3 человек непонятно, означает ли разница во мнениях 2: 1, что 1 - урод или разумное меньшинство. Когда я что-то делал, и 4 или 5 человек могли взглянуть на это и сразу сказать «эээ, не делай этого», тогда я начал действительно верить, что это была просто глупая идея.

Я бы также рекомендую, если вам не разрешено выделять бюджет на проверку кода, лгать и жульничать. Если вы сильно переписываете чужой код, вы Так или иначе, если вы тратите время на его проверку, вы просто не даете обратной связи, которая является важной частью проверки кода. Так что оставьте обзор незамеченным - напишите одну или три функции, затем попросите коллегу взглянуть на нее и сразу же дать вам обратную связь о том, имеет ли она смысл для них. Это помогает начать разговор, как только вы это сделаете, с кодом на мониторе, но старайтесь не прерывать людей, когда у них «поток», или вступать в длительные споры. Это не парное программирование и не формальный обзор кода, но он может помочь вам разобраться в том, что вы делаете самостоятельно, что так плохо.

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

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

14
ответ дан 8 December 2019 в 03:54
поделиться

Я удивлен, что у вас нет времени на экспертную оценку, но есть время на парное программирование. Разве последнее не является намного большим расходом времени?

У нас также есть только три разработчика в нашей компании, и, что удивительно, нас сильно подталкивают в данный момент. Я почти уверен, что мой начальник посмеялся бы надо мной, если бы я предложил парное программирование, потому что это будет рассматриваться как удвоение количества человеко-часов для выполнения задачи, хотя на практике это не тот результат, который он должен давать. Наши коллегиальные обзоры никогда не превышают час, и это крайний случай. В среднем я бы сказал, что они, вероятно, занимают около 10 минут и для каждого разработчика происходят только один или два раза в день.

ИМО, вам следует попробовать экспертные обзоры. Вы часто обнаруживаете, что обидчики (т.е.

6
ответ дан 8 December 2019 в 03:54
поделиться

Объедините все три сразу.

Установите некоторые стандарты кодирования.

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

Проводите ежедневные встречи, чтобы сообщать о прогрессе.

Также попробуйте проверять коллеги дважды в неделю, например, во вторник и пятницу.

1
ответ дан 8 December 2019 в 03:54
поделиться

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

3
ответ дан 8 December 2019 в 03:54
поделиться

Парное программирование не обязательно должно длиться целый день каждый день, чтобы быть эффективным. Я видел хорошие результаты даже за час или два совместной работы в неделю. Один из способов - соединить на некоторое время A и B, затем A и C, затем A и B ... с большим количеством индивидуальных промежутков времени между ними.

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

1
ответ дан 8 December 2019 в 03:54
поделиться

Итак:

  • вас довольно сильно подталкивают
  • ваш код низкого качества

Как вы думаете, эти два аспекта могут быть связаны? Ответ - исправить расписание.

2
ответ дан 8 December 2019 в 03:54
поделиться

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

например, это заняло x человеко-часов, но в среднем сэкономлено y при исправлении дефектов. Вдобавок клод чище, и на его изменение уйдет меньше времени, чем в следующий раз, когда мы коснемся его.

Оттуда у вас будет точная статистика, и вы можете начать кодировать больше.

В основном ваша история кажется такой же, как моя .

  1. Некогда что-то делать.
  2. Ошибки случаются.
  3. Спешите исправить (потребуется больше времени)
  4. Перейти к 1

Вам нужно остановить гниение.

0
ответ дан 8 December 2019 в 03:54
поделиться
  1. Проверка кода
  2. Включите Stylecop, который заставит вас писать читаемый, стандартизованный и управляемый код
0
ответ дан 8 December 2019 в 03:54
поделиться

Мы используем проверку кода. Дополнительно есть еще одна задача: изменить схему, установить кое-что ...

0
ответ дан 8 December 2019 в 03:54
поделиться