不要让自己被代码淹没

       从我刚到华为,到离开华为一直受益于这句话。
       我刚到华为,有一次在百草园打篮球的时候,碰到了一位刚从华为离职,跳到了MOTO的家伙,交谈的内容都忘记了,他的名字也记不住了,名片也弄丢了。只是这句话我一直记着,他和我重复了2遍,在华为,不要被代码淹没了。当时只是作为前辈给我的经验,虽然不太理解,但还是牢记在心。在华为的这几年,经历多了,也逐渐理解了,并且感慨良多。到现在,心里还是一直很感激这位前辈。我在离开华为的时候,也把这句话告诉了我的新员工同事,希望他们也能从此收益。
     刚参加工作的程序员,大多数的工作就是copy/paste,这样持续了一年左右,业务通了,就代码也熟悉了,就开始产生惰性了,以为开发的工作不过如此。但是因为开发阶段的设计问题,或者旧代码的质量问题,到了测试或者维护阶段就不停的被大量的问题单压着。这时候,程序员就会向两条路上发展了。绝大多数的人会走向第一条,每天的工作是被流程驱动,被动的解决问题。人做什么事情如果被动了,质量就多少要打折扣了。大多时候是治标不治本。这些人每天会很累,工作时间很长,每天加班,晚上很晚回去,一般回家也是打游戏或者看电影。年复一年就重复着这样的生活。自己觉得很没劲,但也不会想改变。
     另外一种人,不满足于这样重复的生活,渴望能够拥有相对自由的空间。尤其是不想做流程的奴隶,被无穷的代码淹没。所以就不停的充实自己,从各种渠道寻找新的方法,理念,原则来摆脱这种境遇。看了设计模式,就会接触到重构,再到测试先行,到Mock,到敏捷,到持续集成,新鲜的理论,方法会不断的涌现出来,让你不停的学习。如果你是一个渴望新知的人,你的胃口就永远不会满足。同时把这些东西及时的应用在实际的工作中,转化为生产力,工作效率会越来越高,产品质量越来越好。同时自我满意度也不断提升。这样做的人,一开始会十分辛苦,至少外人看起来是这样。一个人做自己喜欢的事情,或是自己想做的事情的时候,是不会感到累的。
     在工作一年左右的时候,基本会遇到这样的岔路口,你会选哪条?
Cesium可以通过加载地形、影像和矢量数据,来构建一个真实的地球模型,并进行洪水淹没分析。以下是一些Cesium洪水淹没分析的代码实现示例: 1. 加载影像和地形数据 ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); var imageryLayers = viewer.imageryLayers; imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({ url: 'http://localhost:8080/geoserver/gwc/service/wmts', layer: 'workspace:layer', style: '', format: 'image/png', tileMatrixSetID: 'EPSG:4326', maximumLevel: 20, credit: new Cesium.Credit('Data © OpenStreetMap contributors, GeoServer') })); var terrainProvider = new Cesium.CesiumTerrainProvider({ url: 'https://assets.agi.com/stk-terrain/v1/tilesets/world/tiles', requestVertexNormals: true }); viewer.terrainProvider = terrainProvider; ``` 2. 加载矢量数据 ```javascript var dataSource = new Cesium.GeoJsonDataSource('flood'); viewer.dataSources.add(dataSource); dataSource.load('http://localhost:8080/geoserver/workspace/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=workspace:layer&outputFormat=application%2Fjson', { stroke: Cesium.Color.BLACK, fill: Cesium.Color.BLUE.withAlpha(0.5), strokeWidth: 3, clampToGround: true }); ``` 3. 洪水淹没分析 ```javascript var floodHeight = 20; // 洪水高度 var floodPolygon = dataSource.entities.getById('workspace:layer.1'); // 获取洪水区域 var floodPolygonPositions = floodPolygon.polygon.hierarchy.getValue().positions; // 获取洪水区域顶点坐标 var floodPolygonHeight = floodPolygonPositions[0].height; // 获取洪水区域高度 var terrainSamplePositions = Cesium.SampledPositionProperty.fromCartographicArray(terrainCartographicPositions, 50); // 获取地形高度采样点 var floodPolygonCartographicPositions = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(floodPolygonPositions); // 将洪水区域顶点坐标转换为地理坐标 // 计算洪水淹没面积 var floodPolygonArea = Cesium.PolygonGeometryLibrary.computeArea2D(floodPolygonCartographicPositions); var floodHeightArray = new Array(floodPolygonPositions.length).fill(floodPolygonHeight + floodHeight); // 构造洪水高度数组 // 计算洪水淹没体积 var floodPolygonVolume = Cesium.PolygonGeometryLibrary.computeVolume(floodPolygonPositions, floodHeightArray, terrainSamplePositions); console.log('Flood area: ' + (floodPolygonArea / 1000000).toFixed(2) + ' km²'); console.log('Flood volume: ' + (floodPolygonVolume / 1000000).toFixed(2) + ' million m³'); ``` 以上代码示例中,首先通过加载影像和地形数据,构建了一个真实的地球模型。然后通过加载矢量数据,获取了洪水淹没区域。最后,通过计算洪水淹没面积和体积,完成了洪水淹没分析。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值