<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    碼農往事
    我的代碼為什么這么丑?一定是因為我長的不好看
    posts - 29,comments - 86,trackbacks - 0
    說有一個屋里有多個桌子,有多個人? 如果3個人一桌,多2個人。 如果5個人一桌,多4個人。 如果7個人一桌,多6個人。 如果9個人一桌,多8個人。 如果11個人一桌,正好。 請問這屋里多少人?
    最近比較閑,逛論壇看到隨手做了.
    最小答案是
    代碼如下:
        public static void main(String[] args) {
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                long value = i * 11;
                if (value % 3 == 2 && value % 5 == 4 && value % 7 == 6 && value % 9 == 8) {
                    System.out.println("i:" + i + ",value:" + value);
                    break;
                }
            }
        }
    計算出來的結果是:i:229,value:2519
    轉念一想,結果可能不止一個,于是換個寫法:
        public static void main(String[] args) {
            int count = 0;
            long value;
            long valueMax = 0;
            long iMax = 0;
            long pram = 11;
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                value = i * pram;
                if (value % 3 == 2 && value % 5 == 4 && value % 7 == 6 && value % 9 == 8) {
                    count++;
                    if (iMax < i) {
                        iMax = i;
                    }
                    if (valueMax < value) {
                        valueMax = value;
                    }
                }
            }
            System.out.println("count:" + count);
            System.out.println("iMax:" + iMax);
            System.out.println("valueMax:" + valueMax);
        }
    當i在Integer.MAX_VALUE范圍內的計算結果:
    count:6817408
    iMax:2147483434
    valueMax:23622317774
    這邊遇到了一個問題,當代碼中的pram聲明為int類型時計算的結果會與聲明為long類型發生極大偏差,貌似是因為Java乘法對于int類型越界處理的問題,具體原因待查.
    如果你用如下代碼執行:
     int count = 0;
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                long value = i * 11;
                if (value % 3 == 2 && value % 5 == 4 && value % 7 == 6 && value % 9 == 8) {
                    System.out.println("i:" + i + ",value:" + value);
                    count++;
                }
            }
            System.out.println("count:" + count);
    最后數行看到的結果是這樣:
    i:2147475704,value:2147396264
    i:2147476019,value:2147399729
    i:2147476334,value:2147403194
    i:2147476649,value:2147406659
    i:2147476964,value:2147410124
    i:2147477279,value:2147413589
    i:2147477594,value:2147417054
    i:2147477909,value:2147420519
    i:2147478224,value:2147423984
    i:2147478539,value:2147427449
    i:2147478854,value:2147430914
    i:2147479169,value:2147434379
    i:2147479484,value:2147437844
    i:2147479799,value:2147441309
    i:2147480114,value:2147444774
    i:2147480429,value:2147448239
    i:2147480744,value:2147451704
    i:2147481059,value:2147455169
    i:2147481374,value:2147458634
    i:2147481689,value:2147462099
    i:2147482004,value:2147465564
    i:2147482319,value:2147469029
    i:2147482634,value:2147472494
    i:2147482949,value:2147475959
    i:2147483264,value:2147479424
    i:2147483579,value:2147482889
    count:3718586
    問題產生的原因應該是Java對于int的乘法結果大于上限的情況,自動截取了前10位.
    -----------------------------------------------------------------------------------------------------------------之前的理解不正確.

    根據Java的基礎類型的變窄轉換(Narrowing primitive conversion)規則,對于運算結果超出int范圍的,將超出部分全部丟棄,只保留低32位的.
    posted @ 2016-01-25 17:16 Jimi 閱讀(3412) | 評論 (0)編輯 收藏
    有位朋友問起,我就順便總結一下好了。個人知識有限,有謬誤歡迎指正。
    本人一直從事的服務端相關的工作,對前端只能說是耳聞目染。
    參與的項目主要是頁游和手游。

    從程序開發角度講起,程序一般常分為前端程序和后端程序。

    一.前端
    前端就是指玩家所使用的客戶端,主要包括處理UI事件和向服務端發送請求。
    頁游主流的技術有ActionScript及新興的Unity框架,由html5和JavaScript做的小游戲也不少。
    手游上現在比較火的框架就是cocos2d-x和Unity 3D,cocos2d-x 是開源的,Unity 對開發者收費。
    兩者都支持多平臺,就是說一次開發,ios、android等平臺都可以生成相應代碼。
    我自己只稍微玩過一點cocos2d-x,主要用的語言是C++,也可以跟Lua混合使用。
    Unity平臺則支持C#、Boo、JavaScript、Lua,我沒玩過,不發表評論。
    2者現在都很火,行情都還不錯。
    最近比較大的新聞,就是Unreal Engine虛幻引擎宣布開發者免費,感興趣的可以自行google下。

    二.后端
    通常所說的后端,常指的客戶端發送請求的接收和處理者。語言的選擇就很多了,Java、C++、Python、PHP等等。
    端游等對實時性能要求比較高的場合,一般會選擇C++,與之相應的開發成本更高。相對來講,手游頁游選其它語言的就很多了。
    一般根據對實時性的要求,來選擇合適的通信方式,長連接或短連接,以及合適的通訊協議如http、protobuf、amf3,及自定義協議等。
    大多數時間,你主要的工作在定義協議、寫游戲邏輯然后與客戶端聯調。
    另外,服務端一個重要的工作就是負責數據的存儲,mysql數據庫是一個很常見的選擇,還有這幾年興起的各種Nosql數據庫,其中尤其是redis(有人說它不是數據庫),用的越來越多。
    最后,對于日志的處理,也是至關重要的。常用到的框架有log4j以及logback。簡單粗暴點的,你可以另外開線程,直接丟入數據庫,精細點的可以先寫log文件,然后用腳本解析,轉發到日志服務器然后再存入數據庫。
    如果是放mysql數據庫,記得把二進制日志關掉,不然沒跑幾天硬盤就爆了。
    工作內容上,除了上述事務,經常需要你做的事情還有:
    其一,各種游戲平臺的SDK對接,頁游如騰訊、360、37wan,手游如蘋果官方、谷歌官方以及各種大小平臺;
    其二,制作游戲測試工具,GM命令等;
    其三,開發供運維人員使用的WEB版本的游戲管理平臺。
    小規模的公司,你可能啥都要做,人力配置稍微寬松的公司,這些工作往往會區分開來。
    架構上來說,大型游戲的服務端,會分成登錄服、邏輯服、數據存儲服、日志服、GM管理服甚至更復雜。
    一般服務器承載量不高的情況下,單進程的登錄-邏輯-數據的架構也很常見。

    從團隊結構角度講,常見的職位分配:

    1.策劃類:主策劃、關卡策劃、數值策劃、劇本策劃
    2.美術類:主美、UI、3D建模、動作、特效、場景、原畫
    3.程序類:后端、前端
    4.其它:商務、運營、維護、QA
    一個大規模團隊里往往美術是最多的,現在是看臉的時代,囧RZ!好的美術都是用錢砸的。
    小團隊來說,自然就是需要各種身兼數職的牛人。
    策劃?一個就夠了,
    前端?策劃也能兼,
    后端?一個就夠了
    運維?后端也能干
    美術?不好搞就外包吧
    這個世界上永遠不缺少一個人搞定以上所有事情的大牛。

    答博友問:我們當時的團隊是,策劃兼前端,共3前端,后期只剩倆了,后端,前期倆,后期只剩我一個,還有一位特效,美術外包。
    答畢。

    該休息了

    在此申明,轉載——請注明出處。
    來自:http://m.tkk7.com/rockblue1988/archive/2015/03/10/423328.html

    posted @ 2015-03-10 02:05 Jimi 閱讀(4175) | 評論 (3)編輯 收藏
    現在總結,是有那么點晚了呢。
    只是想把那些容易不經意間忘卻的,大的小的、圓的扁的、重要的不重要的,都稍稍記錄下來。

    這是結完婚后的第一個年頭,酸甜苦辣,冷暖自知(這句我咋就能聯想到鴨子呢?)。

    一.工作
    2月份,13年開始做的頁游創業項目徹底黃了,還沒過年呢,尾牙都不給吃,團隊就“被”滾蛋了。
    過完年回來,花了三個禮拜找工作。
    3月2號,最終選擇到一家手游公司上班,提前轉正。
    由于種種原因,決定換工作,拿了三份Offer,其中有我職業生涯中拿到過的最高的,還是比較欣慰的,這種被人認可的感覺良好,雖然最終沒選擇它。
    11月27號到了當前公司上班,目前為止,工作和交流都很funny,是個令人愉快的選擇。

    二.生活
    在魔都這地方,換租了一套有獨立廚房的居室,租的房子啥都沒,買了各種東西,才有那么點家的樣子。
    每天上班下班,做飯洗碗,生活也有點像個樣子。
    這一年是到影院觀影次數最多的一年,這也是戀愛時候曾經憧憬的。
    給自己買了個nokia x2的手機,可是不到一個月就碎屏了,渣渣傷不起。
    小舅子來到,帶他走向了碼農的不歸路。

    三.技能
    1.廚藝
    研究嘗試了很多沒做過的菜式:
    酸菜大腸、豬肚燉蛤蜊、燉王八、蒜泥扇貝、醬汁鮑魚、清蒸多寶魚、清蒸鱸魚、肉末蒸蛋、土豆燉牛腩、
    啤酒燉羊肉、香鹵牛筋、清蒸豬舌頭、酸菜魚頭、土豆色拉、西式牛排、香煎鱈魚,還做了第一份自制雙皮奶。
    這里一點要說說,一個智能電壓力鍋實在是太值得入手了,煮飯燉湯燜肉都用的上,最重要的是有預約功能,晚上下好米,早上起來就能吃稀飯了。
    2.籃球
    周六無安排的話,堅持到上海大學打籃球,虐與被虐之間,技術還是有所進步的。值得一提的事,公司內部比賽,也算是第一次正式上了場,蠻開心。
    3.吉他
    沒進步,只剩下隨便吼吼的技能,走入社會越久,越啞。這個技能的好處是,年會總有機會上臺去釋放下悶騷的青春,順帶還能帶點小禮品下來。
    4.電子琴
    主要練熟了兩首曲子:《菊次郎的夏天》和《夢中的婚禮》,完成了大學時的小心愿。《克羅地亞狂想曲》挑戰失敗,最近電子琴已擺爛。
    5.駕照
    魔都4月份報名,7500,模擬考什么的花了500左右,每次練車都AA請教練吃飯,加上請假考試,總成本10000左右,好在一次性過----說實話,沒上過幾回車,教練素質一般,考科三中間三個月停練,呆車上的時間也絕對沒達標 ---- 全國的駕校都這樣嗎?都TM沒人管了?
    6.代碼能力
    對于Linux下的操作更加熟練,shell腳本編寫,組織SQL的能力有所提高。
    在不同的公司,讀到不同風格的代碼,隱約覺得內功有所提升----別的不說,抄代碼能力那是肯定增長了。
    作為一個半路出家的程序員,補了《C++ primer》和《C程序設計語言》兩本心法,眼界稍稍增長,至少不會被“java程序員不曉得指針是啥”這類的說辭給躺槍。
    主要的吃飯家伙----Java方面,我再“三”次嘗試了《Java并發編程實踐》這本書,比最初多懂得一點。
    比較用得上的一本書是《Java程序性能優化》,在大牛眼中這書可能比較淺顯,但里面的東西確實比其它一些大部頭里說的簡潔一些,挺多地方一般面試也常問到。
    《Java性能優化權威指南》就是前者的加強版,干貨不少,字太多沒堅持讀完。
    項目中用上了redis,漲了點姿勢。
    比較實用的新技能:Lua算是比較熟練了,可以拿來換飯錢。

    四.開心的事
    1.年會上中了三等獎
    2.論壇上抽中一個機械鍵盤

    五.最重要的事
    兩口之家即將變成三口之家了,希望一切順順利利、平平安安!

    六.2015的目標
    年底再揭曉

    祝觀文的諸位碼友三羊開泰,心想事成!
    PS:沒多少內容的一篇隨筆,竟然花了近兩個小時,必須對產出高質量博文的博主們表達一下由衷的敬佩
    posted @ 2015-03-07 03:09 Jimi 閱讀(5638) | 評論 (11)編輯 收藏
    主站蜘蛛池模板: 亚洲精品二三区伊人久久| 黄色一级毛片免费看| 黄页网站在线观看免费高清| 涩涩色中文综合亚洲| 亚洲性久久久影院| 1000部拍拍拍18勿入免费视频下载 | 久久综合亚洲色一区二区三区| 在线观看AV片永久免费| 人体大胆做受免费视频| 亚洲精品美女久久久久| 又色又污又黄无遮挡的免费视| 一个人免费视频在线观看www| 色婷五月综激情亚洲综合| 亚洲国模精品一区| 成人免费激情视频| 一级毛片视频免费| 亚洲日韩中文字幕天堂不卡| 亚洲A丁香五香天堂网| 精品国产sm捆绑最大网免费站| 免费中文字幕视频| 亚洲国产日韩在线| 亚洲熟妇中文字幕五十中出| 97人伦色伦成人免费视频| 久久久国产精品福利免费| 亚洲Av永久无码精品一区二区| 亚洲AV无码一区二区三区DV| 又大又黄又粗又爽的免费视频| 1024免费福利永久观看网站| 久久不见久久见免费影院www日本| 中国亚洲呦女专区| 亚洲一区免费观看| 国产成人综合亚洲AV第一页| 青青草国产免费久久久91| 24小时日本韩国高清免费| 国产免费伦精品一区二区三区| 亚洲第一成年网站视频| 亚洲午夜精品一区二区公牛电影院 | 一级做a爱过程免费视| 亚洲精品乱码久久久久久V| 亚洲天天做日日做天天看| 在线日韩日本国产亚洲|