Какие метрики были бы применимы для определения уровня экспертных знаний на конкретном языке программирования

Можете ли вы запустить

docker logs <container name> -f

и получить информацию о том, что является результатом попытки SSL-рукопожатия?

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

FROM openjdk:8-jre-alpine
COPY target/app.jar /opt/spring-cloud/lib/
COPY certs/ssl.cer $JAVA_HOME/lib/security
RUN \
  cd $JAVA_HOME/lib/security \
  && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias edlscert -file edls.cer
ENTRYPOINT ["/usr/bin/java"]
CMD ["-jar", "/opt/spring-cloud/lib/app.jar"]
VOLUME /var/lib/spring-cloud/config-repo
EXPOSE 9101

Однако у этого подхода есть ограничения, и лучшим решением, вероятно, является предоставление .cer во время развертывания как часть docker-compose file. В любом случае вам понадобится сертификат для связи с внешним сервисом по SSL / HTTPS.

6
задан John Burley 12 February 2009 в 01:53
поделиться

15 ответов

В ответ на предыдущие два плаката я предположил бы, что существует способ разобраться, как хорошо человек может программировать на конкретном языке: можно ли протестировать, как хорошо кто-то знает английский, или Математику, или Музыку, или Медицину или Изобразительное искусство, поэтому что является настолько особенным о языке программирования?

В ответ на OP я предполагаю, что тесты должны оценить:

  • Как хорошо можно программировать
  • Как хорошо можно использовать язык программирования

Поэтому метрики могли бы быть:

  1. То, каково совершенство программирования человека (и существуют различные размеры совершенства такой как без ошибок, удобный в сопровождении, быстрый/дешевый для записи, работает быстро, встречает требования пользователя, и т.д.)?

  2. Человек использует соответствующие/идиоматичные функции рассматриваемого языка программирования, чтобы сделать то хорошее программирование?

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

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

Лучший индикатор Ваших экспертных знаний в конкретном языке, по-моему, насколько продуктивный Вы находитесь в нем.

Производительность не, как быстро можно работать, но и, значительно, как немного ошибок, которые Вы создаете и как мало осуществлять рефакторинг/переделывать, требуются позже.

Например, при взятии двух языков, Вы имеете подобный уровень опыта с и были (в параллельных вселенных) для создания той же системы с обоими, я скажу, что язык, с которым Вы создаете систему быстрее и с меньшим количеством дефектов/недостатков дизайна, язык, в котором у Вас есть больше экспертных знаний.

Извините это не "твердая" метрика для Вас, это - более практический подход.

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

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

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

Держаться...

Даже "LOC" программы является в большой степени спорной темой! (Мы говорим о выводе кошки *. {h, c} | туалет-l или некоторый другой mechnanism, например? Что относительно пустых строк? Комментарии? Действительно ли комментарии важны? Хороший код документируется?)

Пока Вы не поняли, насколько бессмысленный сравнение LOC, у Вас нет надежды на понимание, как бессмысленные другие метрики.

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

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

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

Если Вы сфокусированы на языке, брать проблему как Euler Проекта, использующий тот язык, может быть способом отследить прогресс.

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

Насколько опытный они находятся в отладке сложных проблем на том языке.

Спросите их о проектах, они продолжили работать в прошлом трудные проблемы, с которыми они встретились и как они решили их. Спросите их об отладке методов, которые они использовали - Вы будете удивлены тем, что Вы услышите, и Вы могли бы даже изучить что-то новое ;-)

Много мест имеет человека или два, кто суперзвезда в их поле - человек, все остальные переходят в то, когда они не могут выяснить что не так с их программой. Я предполагаю, что это - человек, которого Вы ищете :-)

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

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

Это может быть подходящим.

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

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

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

Средство с языком программирования недостаточно. То, что требуется, является средством с языком программирования в контексте partiular комплекта библиотек по конкретной платформе

  • C++ на winapi в Windows 32bit
  • C++ на KDE на Linux
  • C++ на Symbian по телефону Nokia S60
  • C# на MS.NET в Windows
  • C# на моно на Linux

В таком контексте меры компетентности с помощью выходного языка на целевой платформе следующие:

  • Способность выразить общие шаблоны кратко и надежно.
  • Способность отладить общие но тонкие ошибки как условия состязания.

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

Также было бы необходимо градуировать людей и в "производителе инструментов" и в "пользовательских режимах" инструмента. Производители инструментов являются совсем другими людьми с намного более высоким уровнем компетентности, но они являются часто неподходящими к работе обезьяны, для которой Вы действительно хотите пользователя инструмента.

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

Я нахожу, что тестирование способности отладить является более точным индикатором программирования навыка, чем какой-либо тест, нацеленный на простые проблемы программирования, с которыми я встретился. Учитывая источник для довольно размерного класса или функции с установленным (или неустановленный, в некоторых случаях) проступок, испытуемый может определить местоположение проблемы?

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

WTF/s * LOC, меньший, является лучшим.

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

Фраза "разумная сумма опыта" зависит от языка, который рассматривают и для чего может использоваться тот язык.

Метрика является результатом измерения. Stevens (см. Википедию: Уровень Измерения), предложил, чтобы измерения использовали четыре различных типа масштаба: номинал (присвоение маркировки), порядковый (присвоение рейтинга), интервал (заказывающий измерения) и отношение (имеющий непроизвольную нулевую начальную точку). LOC является измерением отношения. Хотя совсем не прекрасный, я думаю, что LOC является соответствующим, объективным числом, указывающим, сколько опыта Вы имеете на языке и можете сравниться с измеримыми значениями в промышленности программного обеспечения. Но, это вызывает вопрос: куда эти промышленные значения прибывают из?

Лично, я сказал бы, что "George" будет знать, что у него есть разумная сумма опыта, когда он разработал, реализовал и протестировал проект, возможно, его собственного выбора на его персональном времени на его домашнем компьютере в случае необходимости. Например: база данных, бизнес-приложение, веб-страница, инструмент тестирования GUI, и т.д.

С точки зрения менеджеров по найму я начался бы путем выяснения у программиста, насколько хороший он или она находится на языке, но это не метрика. Я всегда думал, что лучший способ измерить способность людей записать программы состоит в том, чтобы дать программисту несколько небольших проблем программирования, которые продуманы заранее и решенные за данное количество времени, скажем, 5 минут каждый. Я никогда не возражал против этого сделанного мне в собеседованиях. Несколько метрик доступны: действительно ли программист был в состоянии решить проблему (да или нет - номинал)? Сколько времени требовалось (число минут - отношение)? Насколько эффективный их подход был к решению проблемы (хорош, справедлив, плох - порядковый)? Вы изучаете не только способность людей написать код, но и можете наблюдать несколько субъективных вещей также, таких как их поведение, когда они идут о решении проблемы, вопросы, которые он или она задает при решении проблемы, способность работать под давлением, и т.д., С "качественной" точки зрения, хотя, помнят, что людям не нравится измеряться.

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

John

Существует несколько способов приблизиться к Вашему вопросу:

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

2) Я интерпретирую Ваш вопрос быть больше, 'когда я могу назвать МЕНЯ опытным на языке?' Для этого я обратился бы к уровням изучения неродного языка: первый уровень - Вы, должен искать слова/фразы в словаре (книга), чтобы сказать или понять что-либо; второй уровень был бы то, что можно понять слушание языка (или чтение кода) только со случайным поиском в доверяемом и теперь старом словаре; третий уровень можно теперь говорить (или написать код) только со случайным поиском; четвертый уровень - то, где Вы мечтаете на языке; и заключительные уровни - то, где дурачат носителей языка, заставляя думать, что Вы - носитель языка также (в программировании, другие эксперты думали бы, что Вы, возможно, помогли разработать синтаксис языка).

Обратите внимание, что это не помогает определить, насколько хороший из программиста Вы - точно так же, как знание, что английский язык, не имея необходимость искать слова в словаре не показывает, "как gooder Вы при записи' материала" - это субъективно и не имеет никакого отношения к конкретному языку как к людям, которые способны программировать, хороши на любом языке, который Вы даете им.

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

нет ни одного; экспертные знания могут только быть оценены субъективно относительно других или протестированы на специфических особенностях (который имеет его собственный уровень погрешности),

посмотрите то, что является восхищением метриками кода для получения дополнительной информации

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

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

1
ответ дан 8 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: