При изучении Java насколько важно хорошо знать Unix? - PullRequest
4 голосов
/ 08 января 2009

Помимо самого языка Java, вы должны изучить фреймворк Java. Похоже на то, как вы должны изучать .net Framework в дополнение к языку (C # / VB).

Насколько важно знать Unix? Или, скорее, на каких областях Unix следует сосредоточиться?

Видя, как много людей запускают Java-приложения (для настольных компьютеров / в Интернете) на Unix-системах, Какие навыки Unix вам нужны ? Мы просто говорим о базовом обходе каталогов, создании файлов и т. Д., Или это еще не все?

Ответы [ 9 ]

11 голосов
/ 08 января 2009

Ответ, прочитанный из маркетингового материала Sun, заключается в том, что Java является кроссплатформенной, так что вы не делаете.

Практический ответ заключается в том, что вам нужно знать достаточно, чтобы запустить собственное приложение на платформе, на которой вы планируете его использовать. Знакомство с конфигурацией Apache или Tomcat помогает, если вы работаете с веб-разработкой, и также полезно знать, как использовать основные инструменты сетевого анализа - полезны команды ifconfig, netstat и traceroute. Инструменты разрешения доступа к файлам также необходимы для обеспечения работоспособности системы - посмотрите chmod и chown и как эти команды работают.

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

8 голосов
/ 08 января 2009

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

Но для областей, которые вы упомянули (обход каталога, создание файлов), вы будете использовать API-интерфейсы Java, которые лишь изредка касаются специфичных для Unix ("\ n" против "\ r \ n", каталоги с корнем в "/ и т. д.) информация. Когда они касаются, это не то, что вам нужно знать с точки зрения программирования, это то, что вам нужно знать с точки зрения пользователя / администратора.

3 голосов
/ 08 января 2009

Не важно для самого языка.

Вы можете очень хорошо выучить java и никогда не трогать юникс-бокс.

Если вы хотите развернуть на сервере Unix, вы должны знать только основы.

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

Большинство спецификаций ОС абстрагированы от языка с самого начала. Те, которые не могут быть абстрагированы (например, cron), остаются позади.

2 голосов
/ 08 января 2009

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

0 голосов
/ 30 апреля 2009

Вам не нужно знать * NIX для разработки Java-приложения, возможно, если вы собираетесь запустить его на * NIX-машине или если оно использует что-то очень привязанное к * NIX, будет хорошо, если вы знаете, например, об именах файлов и разрешениях.

Необходимость знания * NIX связана с необходимостью развертывания приложения на * сервере NIX. Если это так, то было бы хорошо, если вы что-то знаете о системных переменных (например, установите JAVA_HOME), структуре каталогов tipicall на машине * NIX и базовом использовании (создание файлов, каталогов, удаление, символические ссылки). .).

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

0 голосов
/ 30 апреля 2009

Я предполагаю, что вы говорите об обучении, а не о разработке полномасштабного проекта. Из-за JVM , который, по замыслу, должен обеспечивать единый API для программистов, независимо от используемой системы, программы на Java предназначены для написания способом, который не является специфичным для системы, лежащей в основе смысл использования JNI и т. д.).

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

Если вы не используете IDE, вы должны, по крайней мере, знать, как запустить 'javac', 'java' из командной строки и протестировать вашу программу.

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

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

0 голосов
/ 08 января 2009

Это зависит от вашей ОС. Вы можете заняться разработкой Java под Windows, и в этом случае знание Unix / Linux не требуется. Тем не менее, даже в Windows утилиты GNU / Cygwin могут быть полезны.

0 голосов
/ 08 января 2009

Наряду со знанием того, как обходить каталоги, вам необходимо уметь редактировать и выполнять поиск файлов. Вы должны знать, как сделать некоторые основные процессы управления. Но уровень детализации, который вам нужен, зависит от того, что вы хотите сделать в Unix-системе. Например. веб-разработка требует запуска веб-контейнера, такого как tomcat. Возможно, вы захотите узнать менеджер пакетов вашей системы выбора.

0 голосов
/ 08 января 2009

Я думаю, что ваша метафора означает, что вы должны изучать библиотеку Java в дополнение к самому языку.

Конечно, знание UNIX немного поможет, так как увеличивает ваши общие знания, но я не думаю, что это вообще напрямую связано с Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...