トップページ⇒tech
103コメント31KB

ズルいクライアントに対応可能なプログラム

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
クライアントにソースを納品するのは抵抗がある。
ズルいクライアントだと、勝手に改良して新バージョンを作り
販売してしまう。これを防ぐためにはどうすればよいか?

ズバリ読みにくいコードを書けばいいんだけど、こいつがなかなか
難しい。単に読みにくいコードだけ書いても技術力を過小評価され
るし、明らかにトラップのようなコードを書けば非協力的な事が
バレてしまう!

クライアントに対しては常に協力的な態度を示し、ソースファイル
も笑顔で納品。それでいて他人が簡単にはいじれないコードを書く
には一体どうしらよいのか!?

なお、契約関係でドーコーというのはナシ。そんなのは基本。
「そんなクライアントから仕事とるな!」ってのもナシ。そうも
いかない事情が色々あるんだよ。
0002デフォルトの名無しさんNGNG
2
0003デフォルトの名無しさんNGNG
なんで改良して新バージョンを販売しちゃいかんの?
00041NGNG
3>>
うちで作ったソースを安く請け負う別会社に渡して新バージョン
作られると、こっちに1円も回ってこないからなんだよ。
00053NGNG
>>4
プログラムが何処へ行っても利益を独占したいわけですか?
一度おたくさんの手を離れた物なんだから、後はどう料理しようと
クライアントの勝手じゃないですかね。
0006デフォルトの名無しさんNGNG
-Sで出力したasmファイルを手書きですと言い張って渡す。
0007デフォルトの名無しさんNGNG
>>4
契約をちゃんとしれ。
0008ヒッキー@プログラミングNGNG
マ板にあるようなプログラマの組合のようなものを
作ると良いのではないでしょうか。
0009デフォルトの名無しさんNGNG
7の言うとおりで、契約によるだろう。
著作権についてよく調べてから仕事とれよ。

アプリケーションの利用権だけじゃなくてソース改変して再販する権利まできっちり
販売するんだけど、しかも読みにくいものを渡したいってのは、ちょっと虫が良すぎる。
0010デフォルトの名無しさん NGNG
プロトタイプなんかだと日本じゃまだまだ曖昧だよね -> 契約
00111NGNG
書きかた悪かったが、契約はちゃんとしてる。ソースは渡さない事に
なっている。法的にも渡す義務はないと弁護士のお墨付きももらって
いる。渡せない意志も先方に伝えてある。
だけど、クライアントだからケンカできないんだよ。だから理想と
してはソースを渡して先方で検討してもらった結果、やっぱり新
バージョンの制作もうちにお願いしましょう。そういう結果に
なって欲しいわけなんです。
こういう状況ってうちだけなのか?
まー、うちだけでもそうじゃなくてもいいんだけど、クライアント
との力関係とか、その他関連会社との微妙な関係とかあってそうそう
無下にする事もできない。そんな現状。
0012高校生NGNG
diffコマンドかけて98%一致してるぞゴラっと訴訟を起こす。
(と釘をさしておく)
0013デフォルトの名無しさんNGNG
公正取引委員会…とか良く知らないけど、そういうのは利用できんもんかねぇ。

なんかそういう公の機関を見方につけるとか、マスコミにチクるとかしないと、
学校のイジメと同様、いつまでたってもイジメられっ子からは抜け出せんぞ。
0014デフォルトの名無しさんNGNG
>1
Haskell で開発。
00151NGNG
ちなみに俺自身はそんなものツッパねたれ! と思っている。俺自身は孫請け(C社)。
俺が契約しているB社に対し、販売元のA社がソースをよこせと言ってきている。
俺自身はB社に対しソース納品の義務がない。おまけにB社もA社にソース納品の義務
が無いそうだ。この2点が確認済。だから公正取引委員会とかそんなメンドイ事しなく
ても渡したくなければ内容証明一枚でケリがつく。

B社自体それは分かっているから、それはそれはとても下手に俺にお願いしていると
いうのが現状。さらにこのままA社にソースを渡せば新バージョンの開発はD社に
行くのが分かっているからB社も困っている。でもB社はA社に頭が上がらない。
だから俺に11で書いた結果になるように、分かりにくくしろと言ってきている。
ただし技術力を過小評価されないようにとのお達し付き。

こんな感じ…。
0016デフォルトの名無しさんNGNG
14も言ってるけど、マイナーな言語とか、
インターフェース経由でAPI公開するとかできないの?
そもそもDLL化とかでモジュール提供できないの?
0017デフォルトの名無しさんNGNG
コメントにうそを書きまくる
0018デフォルトの名無しさんNGNG
変数、関数名を______XXXXとかに変えるのはよくあるパターンやね。
00193NGNG
法的手段を選ぶしか、脱する手立てはないと思います。
そうでないと、「契約」の意味が無いじゃないですか。
0020高校生NGNG
D社のレベルによるなぁ、、、OOに弱いならデザインパターン
てんこ盛りにするとか、14じゃないがマイナーな開発言語を
用いるとか。英語に弱いとこならコメントやドキュメントを
自動翻訳するとか。。。どちらにしろD社の情報が必要だね。
0021デフォルトの名無しさんNGNG
そーだそーだDLL提供でいいじゃん。
つーわけで後は>>1本人の意思がどうなのかという問題なので、
これ以上意味ねえし、終了。(でいいよね?)
0022高校生NGNG
かぶった(鬱。。。しかし、みんな発想がいっしょだなぁ
#ディーラーのA社と手を切るのが一番よいと思う。
0023デフォルトの名無しさんNGNG
VCとかなら、/FAsでアセンブラ出力にできるから、
それ提供すれば?ちゃんとビルドできるし。
00241NGNG
>>そうでないと、「契約」の意味が無いじゃないですか
その通りだよ。そんな事は分かってるんだってば。

ちなみにDLLはないよ。Winじゃないから。すまんが状況に関しては
もうこれ以上は言えない。

あとソースはC++。
英語とデザインパターンはナイスだな。元ソースがとても古いんで実装
してないがやってみるか。俺自身勉強中だが、いい機会かもしれない。
デザインパターン自体それほど広く普及しているわけじゃないし、万全とは
言い難いがやらんよりはるかにマシだろう。
サンキューです!>高校生(ほんとに高校生なんか?)

しかしどんだけ書き換えればいいんだか…(汗)
0025デフォルトの名無しさんNGNG
D社より安い見積もりだせればいいのとちゃう?
見積もりよ、あくまでも。
0026高校生NGNG
>>25
B社を飛ばすって事?
00271NGNG
D社の見積もりは安い! 安すぎる!!
でも、B社も見積もりの件では検討中だ。ただ、単なる価格競争だと
絶対D社に勝つのは無理だな。なおD社の技術力はあまり高くないのも事実。
実はD社も知らない仲じゃない。だからなおさら辛いよ。俺もD社もB社もね。
0028デフォルトの名無しさんNGNG
>>24
>ちなみにDLLはないよ。
UNIXでもsoとかあるだろ。
つーか自己完結するならこんなスレ立てるなよ。
0029デフォルトの名無しさんNGNG
調子にのるなよ>1
00301NGNG
sageてるんだから見逃してくれ。すまなかったな。
0031デフォルトの名無しさんNGNG
Modern〜でも読んで、templateを濫用すれば〜。
0032デフォルトの名無しさんNGNG
識別子をkansuu_002とかhensuu_001とかに置換するフィルタを作る。
コメントを削除したり適当に別のコメントと差し替えたりフィルタを作る。
0033デフォルトの名無しさんNGNG
じゃ、D社が失敗するのを待ってればいいのとちゃう?
0034デフォルトの名無しさんNGNG
バカ、もし成功しちまったら、Dは価格競争に勝ったって事で、
>1とその会社がリストラ対象だろが。
ここは、悪辣な陰謀を巡らして、Dに「失敗させるようにし向ける」案、
又は、Dが受ける気にもならない方法を検討するスレなんだよ。
0035デフォルトの名無しさんNGNG
しかしソース解析をきちんと工数に入れてるのかその会社・・・・?
結局割高になるように見えるが。
動かないソースやればケツは全部D社。
A社は何もわからないんだし、D社がA社経由で文句言ってもD社がコンパイルできないくらい技術力が
低いって一蹴すりゃD社が駄目だって風になるだろ。
客にもセコイ真似したら痛い目あうってのをわからせないと駄目だよ。神様じゃないんだから。
0036デフォルトの名無しさんNGNG
D社が成功しちゃったとして、おれなら、来た仕事をD社に安ぅくやらせるたいな。
つか、D社がうまくやったなら、紹介してくれ、うちの仕事も試しにやらしてみたい。
0037高校生NGNG
。。。ついてけねぇ(TT
00381NGNG
D社に限らず、最近は超安い他社の見積もりのオカゲで冷や飯食わされそうだよ。
まー、A社が強引な所に起因してるんだけど…。当然だが、クオリティも下が
っている。
それでもA社は強いよ。超有名ってわけでもないけど、お前らだったら全員知
っているだろうし、街角で10人に聞けば2、3人は知ってる会社。
だからB社もA社から離れられないんだろうなあ。もちろん、俺もC社も。

D社もたぶん本意じゃない見積もり出しているんだろうけど、それにしても安す
ぎる。いや、ホント俺が個人的に頼みたいぐらいだ。ただ、D社の見積もりもA
社から口頭で聞いたものだから信憑性は疑問なのだが…。D社は人月○○円だっ
てよ。書けなくてスマン。
ちなみにD社以外で聞いた一番安いところで人月40ってのがあったけど、今そ
んなもんなのか?

あとスマンがsage進行でよろしくです。
0039デフォルトの名無しさんNGNG
入社1〜2年目の連中の勉強がてらやらせるつもりに1票。
もちろんそいつらの経歴書には3年とか5年とか書いてあるんだけどね。
0040デフォルトの名無しさんNGNG
暗号化すればいいんじゃない?
確かマイクロソフトにツールが無料であると聞いたことがある。
0041デフォルトの名無しさんNGNG
俺が書くソースは、どうやら他人が簡単に弄れないらしい。
 自分では非常に判り易くて俺にはデバックもし易く、
 実際他人の半分くらいでコーデングが終るしデバックも済むし
 トータルのメモリ効率も実行速度も速いんだから
 俺のスタイルは開発効率もいいと思ってるんだが・・・

 いや、普通にカウンタとフラグと状態を示すマジックナンバーを組み合わせてるだけだよ

もしかして論理演算大好きだからかな?
それとキャリーフラグ好きだからついインラインアセンブラ使うのもダメなのかな?
それともマジックナンバーから状態遷移する表が嫌われてるのか? 判り易いのに
0042 NGNG
>>20
OOにしたほうが解読しやすくなっちゃうだろ
0043デフォルトの名無しさんNGNG
>42
そのソースを少し見てみたい。
0044デフォルトの名無しさんNGNG
>41だった
0045デフォルトの名無しさんNGNG
>>41
半年後、そのコードもう一回見てみろよ。
0046デフォルトの名無しさんNGNG
>>38
40か...うちの1/3だな....
004741NGNG
>>43 いやだよ
>>45 ぜんぜん大丈夫。
 自分のソースだと回路図みたいな感じのが浮かんできていい感じ
 に全体が見渡せる
0048デフォルトの名無しさんNGNG
>>42 甘い! 訓練しないで自分流でやっつけた奴は解読不能

結局、思考方法が共通でなければ他人のコードは解読不能
 41みたいにソースが回路図に見えるんじゃそりゃ解読不能だわ
0049デフォルトの名無しさんNGNG
これ、ソース渡せって言われるってのは、ソースだけなの?

>>48
設計図(今の流行でいえばUMLみたいな)を渡さなければ読解困難なソース
ってのは、ありえそう。
0050  NGNG
>>1
innterpreterパターン。
0051デフォルトの名無しさんNGNG
技術的な話じゃなくて申し訳ないけど、結局ソース渡さなきゃいいんじゃないの。
そのプログラムの改良版が必要になりゃ、また>1のところに注文が来るのでは?
ソースがなけりゃ他の会社が>1より安く請けてしまうことも無いと思われ。
0052デフォルトの名無しさんNGNG
1. sourceは公開禁止とA,B,C社で念書を交わすことをsource提供の条件とする。
(この段階でA社が折れる可能性大)
2. 追跡するための文字列リテラルを散りばめる、dynamic linkを使う、
symbol情報を付けたままtarget作成、などの変更。
3. D社のリリースしたbinaryを入手し解析する。
4. 流用したことが分かったら訴えて賠償金をせしめる。
5. 公正取引委員会に訴えてA社を懲らしめる。
6. >>1がC社を頚になったら、顛末を書いた本を出版とする。

D社のレベルが低ければ、2は簡単なもので済む。
0053デフォルトの名無しさんNGNG
>>1
開発者でありクライアントでもある俺から言えば、おたくは付き合う価値なし。
特許がからむようなソースならともかく、通常のものでなら、
次回も受けたいなら、他者やクライアントの開発力に負けないものを提示しろ。

要するに負け犬なんだよヴァカ。
0054お胸おっぱいNGNG
>>52 のが正統だと思われ。
守秘義務付きで見せるだけにしとく。
どうしてもソース(を利用・改変する権利)欲しがるようなら別途契約。
(但し権利の譲渡はしないのが吉。自分が再利用できなくなるからね)
0055デフォルトの名無しさんNGNG
>>41 っていわゆる"向いている人間"なんだろうな…
0056デフォルトの名無しさんNGNG
>>55
むしろ「人間」の方にダウト。
2chでチューリングテストしてるに一票。
0057デフォルトの名無しさんNGNG
>>53
契約違反しまくりですか?
0058デフォルトの名無しさんNGNG
わざと不完全なソースを渡すってのは駄目か?(笑
それかincludeなんかをコマンドライン引数に書いて(VC++だと出来ないかな)
コンパイルを困難にしておく。

あと、C++でクラスの継承を多用して、1クラス1ファイルになってると読む方は
大変だよね。突然わけの分からんメソッド使われてGREPの繰り返し。もうウンザリ。

読みにくいソースにするなら、配列のa[b]をb[a]って書くのも有効かと。
C言語の文法上は正しい。
0059デフォルトの名無しさんNGNG
>>57
53はヤクザなんだろ(藁
0060デフォルトの名無しさんNGNG
微妙に全角文字を混ぜておくとか。
0061デフォルトの名無しさんNGNG
C++に見せかけて、実はD言語。
0062デフォルトの名無しさんNGNG
>>52
バイナリを解析して、ほとんど同じだ、これは同じソースから作られたな、
→著作権侵害、という判例は既にあります。
0063デフォルトの名無しさんNGNG
>>62
契約事項に「リバースエンジニアリング等の解析を禁止します。」と書いて
あった場合どうなるんだ?
00641NGNG
今日の午前中で状況が激変したらしい。

次期バージョンもB社で開発。しかしD社ほどでないにせよ相当安く上げな
ければならないらしい。そのしわ寄せは俺にも来るだろうが、それは、仕方
のない事だろう。

結局、B社から俺に依頼のあった読みにくいコードで記述するという戦略で
はなく、今日の午前中にB社の社長がA社の部長クラスと直接合って話しを
したら比較的丸く納まったらしい。
やはり契約的な面でA社に負い目があり、さらにここでも多数指摘があるよう
にD社に発注する事が必ずしもコストパフォーマンスには繋がらないだろう
という認識をA社部長が理解した事が、上記の結果に繋がったようだ。
まだ口頭での取り決めなので油断できないが、B社社長も取りあえず社長ら
しい仕事をしてくれたんでよかったよ。

こんなクソスレに集い色々アドバイスしてくれたお前らよ…
ありがとう。そしてさようなら。

ムカつく書き込みもあったけど、俺はホントに感謝している。さまざまな意味
で能力不足と言われりゃそれまでだけど、デフレの辛さ、恐ろしさはお前らに
とってもひと事じゃないはずだ。のたれ死なないようにがんばってくれ。

あとひとつ、お前らに謝らなければならない事がある。俺自身の保身のために、
このスレには本質を損なわないようにしながら、いくつかのウソを書いていた。
まー、これは勘弁してくれ。

俺はもう「1」としては書き込まないと思うが、このスレは読みにくいコード
のスレって事でそのまま利用してくれてもいいし、放っておいてくれてもいい。
あんまり勘に触るようなら削除依頼してくれてもよい。好きにしてくれ。

それじゃーな
0065デフォルトの名無しさんNGNG
めでたし、めでたし。

     ∧∧     _ ドスッ
     (   ,,)┌─┴┴─┐
    /   つ.  終  了 │
  〜′ /´ └─┬┬─┘
   ∪ ∪      ││ _ε3
            ゛゛'゛'゛
0066デフォルトの名無しさんNGNG
つまり、世間にはものすごーくありがちな事が自分にもまわってきた1のグチを聞いて終わりか。
0067デフォルトの名無しさんNGNG
あれ、終わり?
(´・ω・`) ショボーン
0068デフォルトの名無しさんNGNG
短編小説の佳作みたいですね。
まあ面白かったよ。
0069デフォルトの名無しさんNGNG
締めくくり方が良かったから許してやるとするか。
0070デフォルトの名無しさんNGNG
>>68
てことは後書き替わりの座談会か?
0071デフォルトの名無しさんNGNG
実は>>64は本物の>>1ではいのかもしれませんよ、ワトソン君!
0072デフォルトの名無しさんNGNG
本物の>>1で灰? そうか迷わず成仏しろよ。
0073デフォルトの名無しさんNGNG
あれ、終わっちゃったの?
obfuscatorとか言おうと思ってスレ開いたのに。
0074デフォルトの名無しさんNGNG
んじゃあ、次回予告ということで。
0075次回予告NGNG
ソースを公開しろと無理難題をふっかけて、すったもんだした挙げ句、
それを引き下げるのを条件に値引きを強要されることがあります。
こういうクライアントがいるのですが、どうしたらいいですか?
やはり始めからブラフだったのですか?
ああ、交渉上手になりたい…
0076Kusakabe YouichiNGNG
In article >>75, 次回予告/sage/75 wrote:

> ソースを公開しろと無理難題をふっかけて、すったもんだした挙げ句、
> それを引き下げるのを条件に値引きを強要されることがあります。
> こういうクライアントがいるのですが、どうしたらいいですか?
> やはり始めからブラフだったのですか?

っていうか、ソースファイルを納品しないのですか?
0077編集長NGNG
>>76
うるせー、ネタにマジレスしてageるな!

ということにしたい
0078デフォルトの名無しさんNGNG
普通にはコンパイルできないようにすれば?
0079sageNGNG
つか、それって法的問題でしょ?
あきらかに自社技術の盗用と認められるケースなら、法で訴えれば?
つても、特許する必要あるけどね
逆にそういう基本的な事をしてないから盗用される
0080sageNGNG
しまった・・・鬱だ氏のう
0081デフォルトの名無しさんNGNG
>>79
そんなことしたら以降の仕事が来なくなる
0082デフォルトの名無しさんNGNG
最適化の方法変更すると動かないとか
0083sageNGNG
>>52

あと、公正取引委員会に訴えても何も出ないと思うよ。
特許庁に申請しているのを確認して、裁判所。
もしくは、じかに「知的所有権侵害」を理由に、裁判所。
いずれにしても、まず弁護士だわね。
0084sageNGNG
>>81

盗用するような企業と付き合ってもしょうがないでしょ。
アメリカでの任天堂の行動じゃないけど、こういう事には厳しいという印象を与えておかないと、いつか失敗するよ
0085デフォルトの名無しさんNGNG
動的リンクに一票
0086デフォルトの名無しさんNGNG
>>64=1
>勘に触るようなら削除依頼
自分で出してくれ
0087デフォルトの名無しさんNGNG
>>84
弱小ソフトハウスはそんな事言ってられないです、はい
0088  NGNG
>>87
だからいつまでも弱小なのでは?:)
0089デフォルトの名無しさんNGNG
会社変われば>1的に解決
0090デフォルトの名無しさんNGNG
//このスレはソースコードを公開しつつ隠蔽するスレに変わりました
0091ageNGNG
>>79
>つても、特許する必要あるけどね

プログラムは、著作権法で保護されてますので、念のため。
特許なんてなくても、権利侵害です。
0092デフォルトの名無しさんNGNG
著作権は登録してなければ守ってくれないのです
0093デフォルトの名無しさんNGNG
>>92
まじ?
0094デフォルトの名無しさんNGNG
>>92
確かに証明は難しいだろうね
0095仕様書無しさんNGNG
登録の仕方は?
0096デフォルトの名無しさんNGNG
というか、何でそんなにそのシステムに固執するんだろう?

AがBを信頼していて、BがCを信頼しているなら、今後も他のプロジェクトを
発注(受注)し続けていけるのでは、と思うんだけど。

前いた会社が、富士通-Fxx-うち、という孫受けメインの会社で、よく
日立とかNECと競合して仕事を持っていかれたけど、途切れることなく
(もちろん既存のシステムの改造等も含め)仕事をやってたなぁ。
0097デフォルトの名無しさんNGNG
>>92
うそです。著作権登録商法にご注意をという警告が日本弁理士会からも出されております。(まともなのもあるかもしれませんが)
http://www.jpaa.or.jp/care/index.html

秘密にしておきたいと思うようなソースならば、特殊な場合だけ発生して実用上問題がないような状況でのみ発生するバグを入れることぐらい簡単でしょう。
0098デフォルトの名無しさんNGNG
>>97 のリンク先で、困ったちゃんの例として次のようなものが紹介されている。

>「著作権登録」をした人は、この「登録」を楯に企業への売り込みや製造販売の中止
>を請求したりしていますが、

なんで製造販売の中止を求めるんだろ? まさかヨソの製品を「著作権登録」で押さえた
つもりになっているのだろうか。
0099デフォルトの名無しさんNGNG
ソースにオブフュスケータかけて、変数名とかオブジェクト名を無意味なものにして、
コメントは全削除でいいだろ。
0100MicrosoftNGNG
    , 
  ⊂⊃
  (  ´つ < 100Getでゴンス
 (:::::::::::::)
 (_)_)
0101デフォルトの名無しさんNGNG
>>99
で、それを引き継いだプログラマが2chでグチを書くんだな(藁
0102デフォルトの名無しさんNGNG
>>99
コメントは削除するより、嘘を書いておいた方が効果的かも。
ただ、それらしい嘘を書くのはかえって面倒だから、いっそ、
2ちゃんねるの適当なスレをcopy&pasteっていうのはどう?

愚痴スレだったりすると読んだPGも共感してたりして(藁
0103デフォルトの名無しさんNGNG
>>99
グチスレコピペはワロタ

スレを登録しとくとコメント部をグチと置換するアプリ作ってみるか。
■ このスレッドは過去ログ倉庫に格納されています